ddalpha/0000755000176200001440000000000013163005153011644 5ustar liggesusersddalpha/inst/0000755000176200001440000000000013066767071012641 5ustar liggesusersddalpha/inst/CITATION0000644000176200001440000000114112776660136013774 0ustar liggesuserscitHeader("To cite ddalpha in publications use:") citEntry(entry = "Article", title = "Depth and depth-based classification with R-package ddalpha", author = personList(as.person("Oleksii Pokotylo"), as.person("Pavlo Mozharovskyi"), as.person("Rainer Dyckerhoff")), journal = "arXiv:1608.04109", year = "2016", textVersion = paste("Pokotylo, O., Mozharovskyi, P., and Dyckerhoff, R. (2016).", "Depth and depth-based classification with R-package ddalpha", "arXiv:1608.04109") ) ddalpha/src/0000755000176200001440000000000013162771463012450 5ustar liggesusersddalpha/src/HD.cpp0000644000176200001440000007074213162771466013464 0ustar liggesusers/******************************************************************************/ /* File: HD.cpp */ /* Created by: Rainer Dyckerhoff, Pavlo Mozharovskyi */ /* First published: 19.06.2015 */ /* Last revised: 03.07.2015 */ /* */ /* Contains functions that compute the exact halfspace depth of a point z */ /* w.r.t. n data points x[1],...x[n]. */ /* */ /******************************************************************************/ #include "stdafx.h" #define _USE_MATH_DEFINES #include #include using namespace std; /* Definition of constants */ const double eps_HD1 = 1e-8; const double eps_HD2 = 1e-8; const double eps_HDx = 1e-8; const double eps_Cmb1 = 1e-8; //const double eps_pivot = 1e-8; /****************************************************************************/ /* */ /* 'norm2' computes the Euclidean norm of a vector x in d-space. */ /* */ /****************************************************************************/ double norm2(double* x, int d) { double result = 0; for (int i = 0; i < d; i++) result += x[i] * x[i]; return sqrt(result); } /****************************************************************************/ /* */ /* 'intHD1' computes the integer hafspace depth of 0 w.r.t n data points */ /* in R^1. */ /* */ /****************************************************************************/ int intHD1(double** x, int n) { int cnt1 = 0, cnt2 = 0; for (int i = 0; i < n; i++, x++) { if (**x < eps_HD1) cnt1++; if (**x > -eps_HD1) cnt2++; } return min(cnt1, cnt2); } /****************************************************************************/ /* */ /* 'intHD2' computes the integer hafspace depth of 0 w.r.t n data points */ /* in R^2. */ /* */ /* This is an implemetation of the algorithm of */ /* Rousseeuw, P.J.and Ruts, I. (1996). Algorithm AS 307: bivariate */ /* location depth. Journal of the Royal Statistical Society. Series C: */ /* Applied Statistics 45, 516–526. */ /* */ /****************************************************************************/ int intHD2(double** x, int n) { double* alpha = new double[n]; int nt = 0; // how many zeros in in x ? int nh = 0; // how many points in the halfspace ? // compute angles alpha[i] and initilize array angle for (int i = 0; i < n; i++) { if (hypot(x[i][0], x[i][1]) <= eps_HD2) nt++; else { alpha[i - nt] = atan2(x[i][1], x[i][0]); // alpha in (-pi,pi] // correction for points like (-1, -1e-16) if (alpha[i - nt] < -M_PI + eps_HD2) alpha[i - nt] = M_PI; if (alpha[i - nt] <= eps_HD2) nh++; } } int nn = n - nt; // sort angles sort(alpha, alpha + nn); // compute halfspace depth int result = nh; if (result > 0) { int j = nh; for (int i = 0; i < nh; i++) { while ((j <= nn - 1) && (alpha[j] - M_PI <= alpha[i] + eps_HD2)) j++; if (j - i <= result) result = j - i - 1; } j = 0; for (int i = nh; i < nn; i++) { while ((j <= nh - 1) && (alpha[j] + M_PI <= alpha[i] + eps_HD2)) j++; if (j - (i - nn) <= result) result = j - (i - nn) - 1; } } delete[] alpha; return result + nt; } /****************************************************************************/ /* */ /* 'nHD_Rec' computes the integer halfspace depth of 0 w.r.t n data points */ /* in R^d. */ /* */ /* 'nHD_Rec' implements the recursive algorithm (k = 1) as described in */ /* Section 3.3 of "Exact computation of the halfspace depth" by */ /* Rainer Dyckerhoff and Pavlo Mozharovskyi (arXiv:1411:6927) */ /* */ /****************************************************************************/ int nHD_Rec(double** xx, int n, int d) { if (d == 1) return intHD1(xx, n); if (d == 2) return intHD2(xx, n); double* y = new double[d - 1]; double* z = new double[d]; double** x = new double*[n]; for (int k = 0; k < n; k++) x[k] = new double[d - 1]; int result = n; for (int i = 0; i < n; i++) { int kmax = d; double xmax = 0; for (int k = 0; k < d; k++) if (fabs(xx[i][k]) > xmax) { xmax = fabs(xx[i][k]); kmax = k; } if (xmax > eps_HDx) { int nNull = 0, nPos = 0, nNeg = 0, m = 0; for (int k = 0; k < d; k++) z[k] = xx[i][k] / xx[i][kmax]; // project data points for (int j = 0; j < n; j++){ double alpha = -xx[j][kmax]; for (int k = 0; k < kmax; k++) y[k] = xx[j][k] + alpha * z[k]; for (int k = kmax; k < d - 1; k++) y[k] = xx[j][k + 1] + alpha * z[k + 1]; if (norm2(y, d - 1) > eps_HDx) { for (int k = 0; k < d - 1; k++) x[m][k] = y[k]; m++; } else { // in this case alpha = -sign(x_i*x_j) if (alpha > eps_HDx) nPos++; else if (alpha < -eps_HDx) nNeg++; else nNull++; } } result = min(result, nHD_Rec(x, m, d - 1) + nNull + min(nPos, nNeg)); if (result == 0) break; } } for (int k = 0; k < n; k++) delete[] x[k]; delete[] x; delete[] z; delete[] y; return result; } /****************************************************************************/ /* */ /* 'HD_Rec' computes the halfspace depth of a point z w.r.t n data */ /* points in R^d. */ /* */ /* 'HD_Rec' does some preprocessing of the data and then calls */ /* 'nHD_Rec'. */ /* */ /* See also the description in the header file. */ /* */ /* HD_Rec calls the following routines: */ /* norm2 */ /* intHD1 */ /* intHD2 */ /* nHD_Rec */ /* */ /****************************************************************************/ double HD_Rec(double* z, double** xx, int n, int d) { if (n <= 0) throw invalid_argument("n <= 0"); if (d <= 0) throw invalid_argument("d <= 0"); // preprocess data // subtract z from all data points x[i] int m = 0; double** x = new double*[n]; bool create = true; for (int i = 0; i < n; i++) { if (create) x[m] = new double[d]; for (int j = 0; j < d; j++) x[m][j] = xx[i][j] - z[j]; create = norm2(x[m], d) >= eps_HDx; if (create) m++; } int result = nHD_Rec(x, m, d) + (n - m); // deallocate array x if (!create) m++; for (int i = 0; i < m; i++) delete[] x[i]; delete[] x; return result / (double)n; } /****************************************************************************/ /* 'getRank' computes the rank of the matrix x */ /* */ /* 'getRank' is used in preprocessing the data in HD_comb and HD_Comb2. */ /* 'getRank' detects if the data points are contained in a lower */ /* dimensional space, by computing the rank of the matrix formed by the */ /* data points x[i]. */ /* */ /****************************************************************************/ int getRank(double** x, int n, int d, int* piv) { int imax; int pc = 0, rank = 0; double amax; // copy x to A double** A = new double*[d]; for (int i = 0; i < d; i++) { A[i] = new double[n]; for (int j = 0; j < n; j++) A[i][j] = x[j][i]; } rank = 0; for (int k = 0; k < min(n, d); k++) { // k-th elimination step do { imax = k; amax = fabs(A[k][pc]); // find maximum element in column for (int i = k + 1; i < d; i++) { if (fabs(A[i][pc]) > amax) { amax = fabs(A[i][pc]); imax = i; } } if (amax < eps_pivot) pc++; } while ((amax < eps_pivot) && (pc < n)); if (pc < n) { rank++; piv[k] = pc; // exchange rows if (imax != k) { for (int j = pc; j < n; j++) { double tmp = A[k][j]; A[k][j] = A[imax][j]; A[imax][j] = tmp; } } // elimination for (int i = k + 1; i < d; i++) { double factor = A[i][pc] / A[k][pc]; for (int j = pc + 1; j < n; j++) A[i][j] -= factor * A[k][j]; } if (++pc >= n) break; } else break; } for (int i = 0; i < d; i++) delete[] A[i]; delete[] A; return rank; } /****************************************************************************/ /* 'project' projects the data points on a lower dimensional subspace. */ /* */ /* 'project' is used in preprocessing the data in HD_comb and HD_Comb2. */ /* If the data points x[i] are contained in a subspace of dimension 'rank' */ /* (as detected by a call to getRank), the representation of the data */ /* points w.r.t. a basis of this subspace is computed. This gives a */ /* representation of the data points in the Euclidean space of dimension */ /* rank. */ /* */ /****************************************************************************/ void project(double** x, int n, int d, int rank, int indices[]) { double** z = new double*[n]; for (int k = 0; k < n; k++) { z[k] = new double[rank]; for (int i = 0; i < rank; i++) { z[k][i] = 0; for (int l = 0; l < d; l++) z[k][i] += x[k][l] * x[indices[i]][l]; } } for (int k = 0; k < n; k++) { delete[] x[k]; x[k] = z[k]; } delete[] z; } /****************************************************************************/ /* */ /* 'getNormal' computes the normal vector to the d-1 vectors passed */ /* in A. */ /* */ /* If the rank of A is equal to d-1, then the function returns 'true' and */ /* the normal vector is passed to the calling routine in 'normal[]'. */ /* If the rank of A is less than d-1, then the function returns 'false' */ /* and the value of 'normal[]' is undefined. */ /* */ /****************************************************************************/ bool getNormal(double** A, int d, double* normal) { int imax, jmax; int* colp = new int[d]; double amax; for (int k = 0; k < d - 1; k++) { imax = k; amax = fabs(A[k][k]); colp[k] = k; // find maximum element in column for (int i = k + 1; i < d - 1; i++) { if (fabs(A[i][k]) > amax) { amax = fabs(A[i][k]); imax = i; } } // maximum equal to zero => complete pivoting if (amax < eps_pivot) { for (int j = k + 1; j < d; j++) { for (int i = k; i < d - 1; i++) { if (fabs(A[i][j]) > amax) { amax = fabs(A[i][j]); imax = i; jmax = j; } } } if (amax < eps_pivot) { delete[] colp; return false; } // exchange columns for (int i = 0; i < d - 1; i++) { double tmp = A[i][k]; A[i][k] = A[i][jmax]; A[i][jmax] = tmp; } colp[k] = jmax; } // exchange rows if (imax != k) { for (int j = k; j < d; j++) { double tmp = A[k][j]; A[k][j] = A[imax][j]; A[imax][j] = tmp; } } // elimination for (int i = k + 1; i < d - 1; i++) { double factor = A[i][k] / A[k][k]; for (int j = k + 1; j < d; j++) A[i][j] -= factor * A[k][j]; } } // back substitution colp[d - 1] = d - 1; normal[d - 1] = -1; for (int k = d - 2; k >= 0; k--) { normal[k] = A[k][d - 1] / A[k][k]; for (int i = k - 1; i >= 0; i--) A[i][d - 1] -= normal[k] * A[i][k]; } // reverse column permutations for (int k = d - 1; k >= 0; k--) { if (colp[k] != k) { double temp = normal[k]; normal[k] = normal[colp[k]]; normal[colp[k]] = temp; } } delete[] colp; return true; } int nHD_Comb(double** xx, int n, int d); /****************************************************************************/ /* */ /* 'HD1proj' performs the following steps: */ /* */ /* 1) All data points x[i] are projected in the direction p, */ /* i.e., z[i] = p'x[i] is computed. */ /* 2) The univariate integer halfspace depth of 0 is computed w.r.t. all */ /* the z[i] that are not equal to 0. */ /* 3) If there are more than d-1 values z[i] that are equal to zero, */ /* the respective points are projected on the orthogonal complement */ /* of p. Then, the integer halfspace depth of 0 w.r.t. these */ /* projected points is computed. */ /* 4) The sum of the values from step 2) and 3) is returned. */ /* */ /****************************************************************************/ int HD1proj(double** x, int n, int d, double* p, int indices[]) { int cnt0 = 0, cnt1 = 0, cnt2 = 0, HDproj = 0; int* plane = new int[n]; for (int i = 0; i < n; i++) { double sum = 0; for (int j = 0; j < d; j++) sum += p[j] * x[i][j]; if (sum > eps_HD1) cnt1++; else if (sum < -eps_HD1) cnt2++; else plane[cnt0++] = i; } if (cnt0 > d - 1) { // recursion double** z = new double*[cnt0]; for (int i = 0; i < cnt0; i++) { z[i] = new double[d - 1]; for (int j = 0; j < d - 1; j++) { z[i][j] = 0; for (int k = 0; k < d; k++) z[i][j] += x[indices[j]][k] * x[plane[i]][k]; } } HDproj = nHD_Comb(z, cnt0, d - 1); for (int i = 0; i < cnt0; i++) delete[] z[i]; delete[] z; } delete[] plane; return min(cnt1, cnt2) + HDproj; } /****************************************************************************/ /* */ /* 'nHD_Comb' computes the integer halfspace depth of 0 w.r.t n data points */ /* in R^d. */ /* */ /* 'nHD_Comb' implements the combinatorial algorithm (k = d-1) as described */ /* in Section 3.1 of "Exact computation of the halfspace depth" by */ /* Rainer Dyckerhoff and Pavlo Mozharovskyi (arXiv:1411:6927) */ /* */ /****************************************************************************/ int nHD_Comb(double** xx, int n, int d) { if (d == 1) return intHD1(xx, n); if (d == 2) return intHD2(xx, n); int result = n + 1; double** a = new double*[d - 1]; for (int i = 0; i < d - 1; i++) a[i] = new double[d]; double* p = new double[d]; int* indices = new int[d - 1]; indices[0] = -1; int pos = 0; while (pos >= 0) { indices[pos]++; for (pos++; pos < d - 1; pos++) indices[pos] = indices[pos - 1] + 1; pos--; do { for (int i = 0; i < d - 1; i++) for (int j = 0; j < d; j++) a[i][j] = xx[indices[i]][j]; if (getNormal(a, d, p)) result = min(result, HD1proj(xx, n, d, p, indices)); indices[pos]++; } while (indices[pos] < n - d + pos + 2); do pos--; while (pos >= 0 && indices[pos] >= n - d + pos + 1); } for (int i = 0; i < d - 1; i++) delete[] a[i]; delete[] a; delete[] p; delete[] indices; return result; } /****************************************************************************/ /* */ /* 'HD_Comb' computes the halfspace depth of a point z w.r.t n data */ /* points in R^d. */ /* */ /* 'HD_Comb' does some preprocessing of the data and then calls */ /* 'nHD_Comb'. */ /* */ /* See also the description in the header file. */ /* */ /* HD_Comb calls the following routines: */ /* norm2 */ /* intHD1 */ /* intHD2 */ /* getRank */ /* project */ /* getNormal */ /* HD1proj */ /* nHD_Rec */ /* */ /****************************************************************************/ double HD_Comb(double* z, double** xx, int n, int d) { if (n <= 0) throw invalid_argument("n <= 0"); if (d <= 0) throw invalid_argument("d <= 0"); // preprocess data // subtract z from all data points x[i] // check whether the data points are concentrated on a lower // dimensional space int m = 0, rank; int* indices = new int[d]; double** x = new double*[n]; for (int i = 0; i < n; i++) { x[m] = new double[d]; for (int j = 0; j < d; j++) x[m][j] = xx[i][j] - z[j]; if (norm2(x[m], d) >= eps_HDx) m++; else delete[] x[m]; } if (m == 0) return 1.0; rank = getRank(x, m, d, indices); if (rank < d) project(x, m, d, rank, indices); int result = nHD_Comb(x, m, rank) + (n - m); // deallocate array x for (int i = 0; i < m; i++) delete[] x[i]; delete[] x; delete[] indices; return result / (double)n; } /****************************************************************************/ /* */ /* 'getBasisComplement' computes a basis of the orthogonal complement of */ /* the d-2 vectors passed in A. */ /* */ /* If the rank of A is equal to d-2, then the function returns 'true' and */ /* the two basis vectors are passed to the calling routine in 'basis[][]'. */ /* If the rank of A is less than d-2, then the function returns 'false' */ /* and the value of 'basis[]' is undefined. */ /* */ /****************************************************************************/ bool getBasisComplement(double** A, int d, double** basis) { int imax, jmax; int* colp = new int[d]; double amax; for (int k = 0; k < d - 2; k++) { imax = k; amax = fabs(A[k][k]); colp[k] = k; // find maximum element in column for (int i = k + 1; i < d - 2; i++) { if (fabs(A[i][k]) > amax) { amax = fabs(A[i][k]); imax = i; } } // maximum equal to zero => complete pivoting if (amax < eps_pivot) { for (int j = k + 1; j < d; j++) { for (int i = k; i < d - 2; i++) { if (fabs(A[i][j]) > amax) { amax = fabs(A[i][j]); imax = i; jmax = j; } } } if (amax < eps_pivot) { delete[] colp; return false; } // exchange columns for (int i = 0; i < d - 2; i++) { double tmp = A[i][k]; A[i][k] = A[i][jmax]; A[i][jmax] = tmp; } colp[k] = jmax; } // exchange rows if (imax != k) { for (int j = k; j < d; j++) { double tmp = A[k][j]; A[k][j] = A[imax][j]; A[imax][j] = tmp; } } // elimination for (int i = k + 1; i < d - 2; i++) { double factor = A[i][k] / A[k][k]; for (int j = k + 1; j < d; j++) A[i][j] -= factor * A[k][j]; } } // back substitution colp[d - 2] = d - 2; colp[d - 1] = d - 1; basis[0][d - 2] = -1; basis[0][d - 1] = 0; basis[1][d - 2] = 0; basis[1][d - 1] = -1; for (int k = d - 3; k >= 0; k--) { basis[0][k] = A[k][d - 2] / A[k][k]; basis[1][k] = A[k][d - 1] / A[k][k]; for (int i = k - 1; i >= 0; i--) { A[i][d - 2] -= basis[0][k] * A[i][k]; A[i][d - 1] -= basis[1][k] * A[i][k]; } } // reverse column permutations for (int k = d - 1; k >= 0; k--) { if (colp[k] != k) { for (int l = 0; l < 2; l++) { double temp = basis[l][k]; basis[l][k] = basis[l][colp[k]]; basis[l][colp[k]] = temp; } } } delete[] colp; return true; } int nHD_Comb2(double** xx, int n, int d); /****************************************************************************/ /* */ /* 'HD2proj' performs the following steps: */ /* */ /* 1) All data points x[i] are projected on the space spanned by the */ /* two vectors passed in p, i.e., y[i,1] = p[1]'x[i] and */ /* y[i,2] = p[2]'x[i] are computed. */ /* 2) The bivariate integer halfspace depth of 0 is computed w.r.t. all */ /* the y[i] that are not equal to (0,0). */ /* 3) If there are more than d-2 values y[i] that are equal to (0,0), */ /* the respective points are projected on the orthogonal complement */ /* of p. Then, the integer halfspace depth of 0 w.r.t. these */ /* projected points is computed. */ /* 4) The sum of the values from step 2) and 3) is returned. */ /* */ /****************************************************************************/ int HD2proj(double** x, int n, int d, double** p, int* indices) { double** y = new double*[n]; for (int i = 0; i < n; i++) y[i] = new double[2]; int cnt0 = 0, cnt1 = 0, HDproj = 0; int* plane = new int[n]; for (int i = 0; i < n; i++) { y[cnt1][0] = y[cnt1][1] = 0; for (int j = 0; j < d; j++) for (int k = 0; k < 2; k++) y[cnt1][k] += p[k][j] * x[i][j]; if (norm2(y[cnt1], 2) > eps_HD2) cnt1++; else plane[cnt0++] = i; } if (cnt0 > d - 2) { double** z = new double*[cnt0]; for (int i = 0; i < cnt0; i++) { z[i] = new double[d - 2]; for (int j = 0; j < d - 2; j++) { z[i][j] = 0; for (int k = 0; k < d; k++) z[i][j] += x[indices[j]][k] * x[plane[i]][k]; } } HDproj = nHD_Comb2(z, cnt0, d - 2); for (int i = 0; i < cnt0; i++) delete[] z[i]; delete[] z; } int result = intHD2(y, cnt1) + HDproj; delete[] plane; for (int i = 0; i < n; i++) delete[] y[i]; delete[] y; return result; } /****************************************************************************/ /* */ /* 'nHD_Comb2' computes the integer halfspace depth of 0 w.r.t n data */ /* points in R^d. */ /* */ /* 'nHD_Comb2' implements the combinatorial algorithm (k = d-2) as */ /* described in Section 3.2 of "Exact computation of the halfspace depth" */ /* by Rainer Dyckerhoff and Pavlo Mozharovskyi (arXiv:1411:6927) */ /* */ /****************************************************************************/ int nHD_Comb2(double** xx, int n, int d) { if (d == 1) return intHD1(xx, n); if (d == 2) return intHD2(xx, n); int result = n + 1; double** a = new double*[d - 2]; for (int i = 0; i < d - 2; i++) a[i] = new double[d]; double** p = new double*[2]; for (int i = 0; i < 2; i++) p[i] = new double[d]; int* indices = new int[d - 2]; indices[0] = -1; int pos = 0; while (pos >= 0) { indices[pos]++; for (pos++; pos < d - 2; pos++) indices[pos] = indices[pos - 1] + 1; pos--; do { for (int i = 0; i < d - 2; i++) for (int j = 0; j < d; j++) a[i][j] = xx[indices[i]][j]; if (getBasisComplement(a, d, p)) result = min(result, HD2proj(xx, n, d, p, indices)); indices[pos]++; } while (indices[pos] < n - d + pos + 3); do pos--; while (pos >= 0 && indices[pos] >= n - d + pos + 2); } for (int i = 0; i < d - 2; i++) delete[] a[i]; delete[] a; for (int i = 0; i < 2; i++) delete[] p[i]; delete[] p; delete[] indices; return result; } /****************************************************************************/ /* */ /* 'HD_Comb2' computes the halfspace depth of a point z w.r.t. n data */ /* points in R^d. */ /* */ /* 'HD_Comb2' does some preprocessing of the data and then calls */ /* 'nHD_Comb2'. */ /* */ /* See also the description in the header file. */ /* */ /* HD_Comb2 calls the following routines: */ /* norm2 */ /* intHD1 */ /* intHD2 */ /* getRank */ /* project */ /* getBasisComplement */ /* HD2proj */ /* nHD_Rec */ /* */ /****************************************************************************/ double HD_Comb2(double* z, double** xx, int n, int d) { if (n <= 0) throw invalid_argument("n <= 0"); if (d <= 0) throw invalid_argument("d <= 0"); int m = 0, rank; int* indices = new int[d]; double** x = new double*[n]; // preprocess data // subtract z from all data points x[i] // check whether the data points are concentrated on a lower // dimensional spcae for (int i = 0; i < n; i++) { x[m] = new double[d]; for (int j = 0; j < d; j++) x[m][j] = xx[i][j] - z[j]; if (norm2(x[m], d) >= eps_HDx) m++; else delete[] x[m]; } if (m == 0) return 1.0; rank = getRank(x, m, d, indices); if (rank < d) project(x, m, d, rank, indices); int result = nHD_Comb2(x, m, rank) + (n - m); // deallocate array x for (int i = 0; i < m; i++) delete[] x[i]; delete[] x; delete[] indices; return result / (double)n; } ddalpha/src/OjaDepth.h0000644000176200001440000000027313162771466014324 0ustar liggesusers void OjaDepthsEx(TDMatrix X, TDMatrix x, int d, int n, int nx, double *depths); void OjaDepthsApx(TDMatrix X, TDMatrix x, int d, int n, int nx, unsigned long long k, double *depths); ddalpha/src/TukeyDepth.cpp0000644000176200001440000001151113162771466015244 0ustar liggesusers/* File: TukeyDepth.cpp Created by: Pavlo Mozharovskyi First published: 28.02.2013 Last revised: 13.11.2015 Computation of the random Tukey data depth. For a description of the algorithm, see: Cuesta-Albertos, J. A. and Nieto-Reyes, A. (2008). The random Tukey depth. Computational Statistics & Data Analysis 52, 11 (July 2008), 4979-4988. Mozharovskyi, P., Mosler, K. and Lange, T. (2013). Classifying real-world data with the DDalpha-procedure. Mimeo. */ #include "stdafx.h" static int CompareAsc(OrderRec x, OrderRec y) { return (x.value < y.value); } static int CompareDec(OrderRec x, OrderRec y) { return (x.value > y.value); } void GetPrjDepths(double* projection, int n, TVariables& cardinalities, unsigned curClass, TVariables *prjDepths){ //Collecting basic statistics int beginIndex = 0; for (unsigned i = 0; i < cardinalities.size(); i++){ if (i >= curClass){break;} beginIndex += cardinalities[i]; } int endIndex = beginIndex + cardinalities[curClass] - 1; //Preparing structures vector prjSort(n); for (int i = 0; i < n; i++){ prjSort[i].order = i; prjSort[i].value = projection[i]; } //Calculating projection depths TVariables depthsForwards(n); TVariables depthsBackwards(n); //Forwards sort(prjSort.begin(), prjSort.end(), CompareAsc); int curDepth = 0; for (int i = 0; i < n; i++){ if ((prjSort[i].order >= beginIndex) && (prjSort[i].order <= endIndex)){curDepth++;} depthsForwards[prjSort[i].order] = curDepth; } //Backwards sort(prjSort.begin(), prjSort.end(), CompareDec); curDepth = 0; for (int i = 0; i < n; i++){ if ((prjSort[i].order >= beginIndex) && (prjSort[i].order <= endIndex)){curDepth++;} depthsBackwards[prjSort[i].order] = curDepth; } //Merge for (int i = 0; i < n; i++){ if (depthsForwards[i] < depthsBackwards[i]){ (*prjDepths)[i] = depthsForwards[i]; }else{ (*prjDepths)[i] = depthsBackwards[i]; } } } inline void GetPtPrjDepths(double* projection, int n, double point, TVariables& cardinalities, double* ptPrjDepths){ int q = cardinalities.size(); for (int i = 0; i < q; i++){ int beginIndex = 0; for (int j = 0; j < q; j++){ if (j >= i){break;} beginIndex += cardinalities[j]; } int endIndex = beginIndex + cardinalities[i]; int nPtsBelow = 0; int nPtsAbove = 0; for (int j = beginIndex; j < endIndex; j++){ if (projection[j] <= point){nPtsBelow++;} if (projection[j] >= point){nPtsAbove++;} } ptPrjDepths[i] = (nPtsBelow <= nPtsAbove)?(double)nPtsBelow:(double)nPtsAbove; } } //Indexing from zero void GetDSpace(TDMatrix points, int n, int d, TVariables& cardinalities, int k, bool atOnce, TDMatrix dSpace, TDMatrix directions, TDMatrix projections){ //1. Collecting basic statistics int q = cardinalities.size(); if (!atOnce){ TDMatrix ptPrjDepths = newM(k, q); for (int i = 0; i < n; i++){ /* TMatrix dir(k, TPoint(d)); TMatrix proj(k, TPoint(q));*/ GetDepths(points[i], points, n, d, cardinalities, k, false, directions, projections, dSpace[i], ptPrjDepths); } deleteM(ptPrjDepths); return; } GetDirections(directions, k, d); GetProjections(points, n, d, directions, k, projections); //2. Calculate projection depths vector > prjDepths(k, vector(q, TVariables(n))); for (int i = 0; i < k; i++){ for (int j = 0; j < q; j++){ GetPrjDepths(projections[i], n, cardinalities, j, &prjDepths[i][j]); } } //3. Merge depths for (int i = 0; i < n; i++){ for (int j = 0; j < q; j++){ dSpace[i][j] = cardinalities[j] + 1; } } for (int i = 0; i < k; i++){ for (int j = 0; j < q; j++){ for (int l = 0; l < n; l++){ if (prjDepths[i][j][l] < dSpace[l][j]){ dSpace[l][j] = prjDepths[i][j][l]; } } } } for (int i = 0; i < q; i++){ for (int j = 0; j < n; j++){ dSpace[j][i] /= cardinalities[i]; } } } void GetDepths(double* point, TDMatrix points, int n, int d, TVariables& cardinalities, int k, bool atOnce, TDMatrix directions, TDMatrix projections, double* depths, TDMatrix ptPrjDepths /*accu, k*q */){ //1. Collecting basic statistics int q = cardinalities.size(); if (!atOnce){ GetDirections(directions, k, d); GetProjections(points, n, d, directions, k, projections); } //2. Calculate projection depths TPoint pointProjections(k); for (int i = 0; i < k; i++){ double curPrj = 0; for (int j = 0; j < d; j++){ curPrj += point[j]*directions[i][j]; } pointProjections[i] = curPrj; } for (int i = 0; i < k; i++){ GetPtPrjDepths(projections[i], n, pointProjections[i], cardinalities, ptPrjDepths[i]); } //3. Merge depths for (int i = 0; i < q; i++){ depths[i] = cardinalities[i] + 1; } for (int i = 0; i < k; i++){ for (int j = 0; j < q; j++){ if (ptPrjDepths[i][j] < depths[j]){ depths[j] = ptPrjDepths[i][j]; } } } for (int i = 0; i < q; i++){ depths[i] /= (double)cardinalities[i]; } } ddalpha/src/Knn.cpp0000644000176200001440000002152613162771466013713 0ustar liggesusers/* File: Knn.cpp Created by: Pavlo Mozharovskyi First published: 28.02.2013 Last revised: 13.11.2015 The realization of the fast binary affine-invariante KNN classifier. */ #include "stdafx.h" #define DISTTYPE_EUCLIDEAN 1 #define DISTTYPE_MAXIMUM 2 #define DISTTYPE_STANDARDIZE 64 static TMatrix Sigma; static int CompareValue(UPoint a, UPoint b) /* This routine is passed to the sort routine. */ { return (a.value < b.value); } static int GetMean(TMatrix x, TPoint *mean){ unsigned int n = x.size();if (n <= 0){return -1;} unsigned int d = x[0].size();if (d <= 0){return -1;} mean->resize(d); for (unsigned int i = 0; i < n; i++){ for (unsigned int j = 0; j < d; j++){ (*mean)[j] += x[i][j]; } } for (unsigned int j = 0; j < d; j++){ (*mean)[j] /= (double)n; } return 0; } static int GetCov(TMatrix x, TMatrix *cov){ unsigned int n = x.size();if (n <= 0){return -1;} unsigned int d = x[0].size();if (d <= 0){return -1;} TPoint mean;GetMean(x, &mean); cov->resize(d); for (unsigned int i = 0; i < d; i++){(*cov)[i].resize(d);} for (unsigned int i = 0; i < n; i++){ for (unsigned int j = 0; j < d; j++){ for (unsigned int k = 0; k < d; k++){ (*cov)[j][k] += (x[i][j] - mean[j])*(x[i][k] - mean[k]); } } } for (unsigned int j = 0; j < d; j++){ for (unsigned int k = 0; k < d; k++){ (*cov)[j][k] /= (double)(n - 1); } } return 0; } static int GetInverted(TMatrix x, TMatrix *inv){ unsigned int d = x.size();if (d <= 0){return -1;} unsigned int _d = x[0].size();if (_d != d){return -1;} boost::numeric::ublas::matrix A(d, d);A.clear(); for (unsigned int i = 0; i < d; i++){ for (unsigned int j = 0; j < d; j++){ A(i,j) = x[i][j]; } } typedef boost::numeric::ublas::permutation_matrix pmatrix; boost::numeric::ublas::matrix Inv(d, d);Inv.clear(); pmatrix pm(A.size1()); int res = lu_factorize(A, pm); if (res != 0){return -1;} Inv.assign(boost::numeric::ublas::identity_matrix (A.size1())); boost::numeric::ublas::lu_substitute(A, pm, Inv); inv->resize(d); for (unsigned int i = 0; i < d; i++){ (*inv)[i].resize(d); } for (unsigned int i = 0; i < d; i++){ for (unsigned int j = 0; j < d; j++){ (*inv)[i][j] = Inv(i,j); } } return 0; } static double GetNormalized(TPoint dif){ unsigned int d = dif.size(); TPoint tmp(d); for (unsigned int i = 0; i < d; i++){ for (unsigned int j = 0; j < d; j++){ tmp[i] += dif[j]*Sigma[j][i]; } } double res = 0; for (unsigned int i = 0; i < d; i++){ res += tmp[i]*dif[i]; } return res; } static double GetDistance(TPoint x, TPoint y, int d, int distType){ double dist = 0.; if ((distType & DISTTYPE_EUCLIDEAN) == DISTTYPE_EUCLIDEAN){ TPoint distVector(d); for (int i = 0; i < d; i++){distVector[i] = x[i] - y[i];} if ((distType & DISTTYPE_STANDARDIZE) == DISTTYPE_STANDARDIZE){ dist = GetNormalized(distVector); }else{ for (int i = 0; i < d; i++){dist += std::pow(x[i] - y[i],2);} } } if ((distType & DISTTYPE_MAXIMUM) == DISTTYPE_MAXIMUM){ for (int i = 0; i < d; i++){ if (abs(x[i] - y[i]) > dist){dist = abs(x[i] - y[i]);} } } return dist; } static int GetDistances(TMatrix x, TMatrix *dist, int distanceType){ unsigned int n = x.size();if (n <= 0){return -1;} unsigned int d = x[0].size();if (d <= 0){return -1;} TMatrix cov;GetCov(x, &cov);GetInverted(cov, &Sigma); dist->resize(n); for (unsigned int i = 0; i < n; i++){(*dist)[i].resize(n);} for (unsigned int i = 0; i < n - 1; i++){ for (unsigned int j = i + 1; j < n; j++){ (*dist)[i][j] = (*dist)[j][i] = GetDistance(x[i], x[j], d, distanceType); } } return 0; } static int GetMaxIndex(TVariables v){ int index = 0;int maxValue = v[0];int d = v.size(); for (int i = 1; i < d; i++){ if (v[i] > maxValue){index = i; maxValue = v[i];} } return index; } int KnnCv(TMatrix points, TVariables labels, unsigned int kMax, int distType, unsigned int numFolds){ // Collect basic statistics (and check it) unsigned int d = points[0].size();unsigned int n = points.size(); int q = labels[GetMaxIndex(labels)] + 1; if (labels.size() != n){return -1;} // Prepare indicator array for Jack-Knifing TMatrix dist;GetDistances(points, &dist, distType); vector > indicators(n, vector(n)); for (unsigned i = 0; i < n; i++){ for (unsigned j = 0; j < n; j++){ indicators[i][j] = UPoint(labels[j], dist[i][j]); } } for (unsigned i = 0; i < n; i++){indicators[i][i].value = -1;} for (unsigned i = 0; i < n; i++){ sort(indicators[i].begin(), indicators[i].end(), CompareValue); } // Jack-knifing vector decisions(kMax + 1, TVariables(n)); for (unsigned int i = 0; i < n; i++){decisions[0][i] = labels[i];} for (unsigned int i = 0; i < n; i++){ TVariables locVotes(q); for (unsigned j = 1; j < kMax + 1; j++){ locVotes[indicators[i][j].pattern]++; decisions[j][i] = GetMaxIndex(locVotes); } } TVariables guessed(kMax + 1); for (unsigned i = 1; i < kMax + 1; i++){ for (unsigned j = 0; j < n; j++){ if (decisions[i][j] == decisions[0][j]){guessed[i]++;} } } return GetMaxIndex(guessed); } int Knn(TMatrix objects, TMatrix points, TVariables labels, unsigned int k, int distType, TVariables *output){ unsigned int n = points.size();if (n <= 0){return -1;} unsigned int d = points[0].size();if (d <= 0){return -1;} int q = labels[GetMaxIndex(labels)] + 1; unsigned int nobjects = objects.size();if (nobjects <= 0){return -1;} if (labels.size() != n){return -1;}if (objects[0].size() != d){return -1;} output->resize(nobjects); if ((distType & DISTTYPE_STANDARDIZE) == DISTTYPE_STANDARDIZE){ TMatrix cov;GetCov(points, &cov);GetInverted(cov, &Sigma); } for (unsigned int i = 0; i < nobjects; i++){ vector indicators(n); for (unsigned int j = 0; j < n; j++){ indicators[j] = UPoint(labels[j], GetDistance(objects[i], points[j], d, distType)); } sort(indicators.begin(), indicators.end(), CompareValue); TVariables locVotes(q); for (unsigned j = 0; j < k; j++){ locVotes[indicators[j].pattern]++; } (*output)[i] = GetMaxIndex(locVotes); } return 0; } int GetK_JK_Binary(TMatrix points, TVariables cardinalities, unsigned int maxk){ // Collect basic statistics (and check it) unsigned int d = points[0].size(); unsigned int n = points.size(); unsigned int q = cardinalities.size(); if (q != 2){return -1;} // Prepare indicator array for Jack-Knife TMatrix dist;GetDistances(points, &dist, DISTTYPE_EUCLIDEAN | DISTTYPE_STANDARDIZE); vector > indicators; indicators.resize(n); for (unsigned int i = 0; i < n; i++){ indicators[i].resize(n); for (int j = 0; j < cardinalities[0]; j++){indicators[i][j] = UPoint(0, dist[i][j]);} for (unsigned j = cardinalities[0]; j < n; j++){indicators[i][j] = UPoint(1, dist[i][j]);} } for (unsigned int i = 0; i < n; i++){indicators[i][i].value = -1;} for (unsigned int i = 0; i < n; i++){sort(indicators[i].begin(), indicators[i].end(), CompareValue);} // Jack-knifing vector decisions(maxk); decisions[0].resize(n);for (unsigned int j = 0; j < n; j++){decisions[0][j] = indicators[j][1].pattern;} for (unsigned int i = 1; i < maxk; i++){ decisions[i].resize(n); for (unsigned int j = 0; j < n; j++){ decisions[i][j] = decisions[i - 1][j] + indicators[j][i + 1].pattern; } } for (unsigned i = 0; i < maxk; i++){ for (unsigned j = 0; j < n; j++){ decisions[i][j] = (decisions[i][j] > (i + 1)/2 ? 1 : 0); } } TVariables errors(maxk); for (unsigned int i = 0; i < maxk; i++){ for (int j = 0; j < cardinalities[0]; j++){errors[i] += decisions[i][j];} for (unsigned j = cardinalities[0]; j < n; j++){errors[i] += 1 - decisions[i][j];} } int k = -1; int minErr = n + 1; for (unsigned int i = 0; i < maxk; i++){if (errors[i] < minErr){k = i + 1; minErr = errors[i];}} return k; } int Knn_Classify_Binary(TMatrix objects, TMatrix points, TVariables cardinalities, unsigned int k, TVariables *output){ unsigned int n = points.size();if (n <= 0){return -1;} unsigned int d = points[0].size();if (d <= 0){return -1;} unsigned int nobjects = objects.size();if (nobjects <= 0){return -1;} if (objects[0].size() != d){return -1;} output->resize(nobjects); TMatrix cov;GetCov(points, &cov); GetInverted(cov, &Sigma); for (unsigned int i = 0; i < nobjects; i++){ TPoint point = objects[i]; TPoint tmp(d); TPoint dist(n); for (unsigned int j = 0; j < n; j++){ for (unsigned int l = 0; l < d; l++){tmp[l] = point[l] - points[j][l];} dist[j] = GetNormalized(tmp); } vector indicators(n); for (int j = 0; j < cardinalities[0]; j++){indicators[j] = UPoint(0, dist[j]);} for (unsigned j = cardinalities[0]; j < n; j++){indicators[j] = UPoint(1, dist[j]);} sort(indicators.begin(), indicators.end(), CompareValue); unsigned decision = 0; for(unsigned int j = 0; j < k; j++){decision += indicators[j].pattern;} (*output)[i] = (decision > k/2 ? 1 : 0); } return 0; } ddalpha/src/SimplicialDepth.h0000644000176200001440000000043213162771466015676 0ustar liggesusers void SimplicialDepthsEx(TDMatrix X, TDMatrix x, int d, int n, int nx, double *depths); void SimplicialDepthsApx(TDMatrix X, TDMatrix x, int d, int n, int nx, unsigned long long k, double *depths); void SimplicialDepths2(TDMatrix X, TDMatrix x, int n, int nx, double *depths); ddalpha/src/ZonoidDepth.cpp0000644000176200001440000003253513162771466015416 0ustar liggesusers/* File: depth.cpp Created by: Rainer Dyckerhoff Last revised: 15.05.2013 Computation of the zonoid data depth. For a description of the algorithm, see: Dyckerhoff, R., Koshevoy, G., and Mosler, K. (1996) Zonoid Data Depth: Theory and Computation, in: A. Compstat - Proceedings in Computational Statistics (Albert Prat, ed.), Physica-Verlag, Heidelberg, p. 235--240. */ #include "stdafx.h" /* Definition of constants */ static const double eps = 1e-8; static const double accuracy = 1e-10; static const int MaxIt = 1000; /* Definition of types */ typedef vector > TMatrix; //typedef double TRevSimplexTableau[MaxD + 2][MaxD + 3]; typedef vector TVariablen; // typedef int TVariablen[MaxD + 1]; /* Definition of static variables */ static int n, d, ItCount; static double lowerbound; static TMatrix rs; static TVariablen bv; static vector x_sort; static vector RowInverted; /* Definition of static functions */ static void RSInit(TPoint& z) /* Initialize the revised simplex tableau. */ { int i, j; /* Basis = Identity matrix. */ rs.resize(d+2); for (i = 0; i < d+2; i++) rs[i].resize(d+3); for (i = 1; i <= d + 1; i++) for (j = 1; j <= d + 1; j++) rs[i][j] = (i == j); /* All simplex multipliers are equal to unity. */ for (j = 1; j <= d + 1; j++) rs[0][j] = 1; /* RHS = z,1 */ /* Objective = 1 + sum of the z_i */ rs[0][d + 2] = rs[d + 1][d + 2] = 1; for (i = 1; i <= d; i++) rs[0][d + 2] += rs[i][d + 2] = z[i-1]; /* Initially all basis variables are artificial variables. */ bv.resize(d+1); for (i = 0; i <= d; i++) bv[i] = -1; } static void MakeCanonical(vector& x, TPoint& z) /* Convert master problem to canonical form. */ { int i, j; RowInverted.resize(d); for (j = 0; j < d; j++) if ( RowInverted[j] = z[j] < 0 ) { for (i = 0; i < n; i++) x[i][j] = -x[i][j]; z[j] = -z[j]; } } static void MakeOriginal(vector& x, TPoint& z) /* Reconstruct the original data. */ { int i, j; for (j = 0; j < d; j++) if (RowInverted[j]) { for (i = 0; i < n; i++) x[i][j] = -x[i][j]; z[j] = -z[j]; } } static void CancelRow(int ip) /* Delete a zero row from the RS tableau. */ { int i, j; for (i = 0; i <= d + 1; i++) rs[i][ip] = 0; for (j = 1; j <= d + 2; j++) rs[ip][j] = 0; } static int Compare(SortRec a, SortRec b) /* This routine is passed to the sort routine. */ { return (a.v > b.v) ; } static bool AddColumn(vector& x) /* Solve the subproblem, generate the pivot column and adjoin it to the to the RS tableau. */ { int card, i, j, k; double max, sum, rtmp; /* Generate the coefficient of the subproblem's objective. */ for (k = 0; k < n; k++) { for (x_sort[k].v = 0, j = 0; j < d; j++) x_sort[k].v += rs[0][j + 1] * x[k][j]; x_sort[k].p = &x[k]; } /* Sort the coefficients in decreasing order. */ sort(x_sort.begin(), x_sort.end(), Compare); /* Find the maximum of the subproblem as well as the extreme point at which it is assmed. */ card = 0; max = -rs[0][d + 1]; sum = -1; for (k = 1; k <= n; k++) if ((rtmp = (sum += x_sort[k-1].v) / k) > max) { max = rtmp; card = k; } max += rs[0][d + 1]; /* If the maximum is less than zero, the value of the objective of the MP cannot be decreased. */ if (max < eps) return false; /* Solution found. */ /* If the relative error is less than 'accuracy', the iteration is stopped as well. */ if (rs[0][d + 2] - max > lowerbound) lowerbound = rs[0][d + 2] - max; if ((rs[0][d + 2] - lowerbound) / lowerbound < accuracy) return false; /* If the number of iterations exceeds 'MaxIt', the iteration is stopped. */ if ( ++ItCount > MaxIt ) return false; /* Generate the new pivot column for the MP. */ rs[0][0] = max; for (i = 1; i <= d + 1; i++) rs[i][0] = rs[i][d + 1]; for (j = 0; j < d; j++) { for (sum = 0, k = 0; k < card; k++) sum += x_sort[k].p->operator[](j); for (sum /= card, i = 1; i <= d + 1; i++) rs[i][0] += rs[i][j + 1] * sum; } return true; } static bool NonBasis(int v) /* Check whether 'v' is a basis variable. */ { int i; for (i = 0; i <= d; i++) if (bv[i] == v) return false; return true; } static bool PhaseIGeneratePivotColumn(vector& x, int *PivotColumn) /* Generate the new pivot column in phase I of the simplex algorithm. */ { int i, j, k; double rtmp; /* Find the pivot column */ rs[0][0] = -rs[0][d + 1]; *PivotColumn = 0; for (k = 1; k <= n; k++) if (NonBasis(k)) { for (rtmp = 0, j = 1; j <= d; j++) rtmp += rs[0][j] * x[k-1][j-1]; if (rtmp > rs[0][0]) { rs[0][0] = rtmp; *PivotColumn = k; } } if ((rs[0][0] += rs[0][d + 1]) < eps) return false; /* Generate the pivot column */ for (i = 1; i <= d + 1; i++) { rs[i][0] = rs[i][d + 1]; for (j = 1; j <= d; j++) rs[i][0] += rs[i][j] * x[*PivotColumn-1][j-1]; } return true; } static int FindPivotRow() /* Find the pivot row. */ { int i; double min, quot; vector I; I.resize(d+1); min = DBL_MAX; for (i = 1; i <= d + 1; i++) if (rs[i][0] > eps) { quot = rs[i][d + 2] / rs[i][0]; if (quot <= min+eps) { if (quot < min-eps) { I.clear(); min = quot; } I.push_back(i); } } if (I.size() <= 1) return I[0]; else return I[random(I.size())]; } static void RSStep(int PivotRow, int PivotColumn) /* Update the revised simplex tableau. */ { int i, j; double pivot; /* Calculate the new tableau. */ pivot = rs[PivotRow][0]; for (j = 1; j <= d + 2; j++) { rs[PivotRow][j] /= pivot; for (i = 0; i <= d + 1; i++) if (i != PivotRow) rs[i][j] -= rs[PivotRow][j] * rs[i][0]; } /* 'PivotColumn' goes into the basis. */ bv[PivotRow - 1] = PivotColumn; } static bool NoZeroRow(vector& x, int * PivotRow, int * PivotColumn) /* Check if a given row of the is a zero row. If a nonzero element is found, it is returned in '*PivcotColumn'. */ { int i, j, k; double rtmp; /* Find a non-zero element. */ *PivotColumn = 0; for (k = n; k > 0; k--) if (NonBasis(k)) { rtmp = rs[*PivotRow][d + 1]; for (j = 1; j <= d; j++) rtmp += rs[*PivotRow][j] * x[k-1][j-1]; if (fabs(rtmp) > eps) { *PivotColumn = k; for (i = 0; i <= d + 1; i++) { rs[i][0] = rs[i][d + 1]; for (j = 1; j <= d; j++) rs[i][0] += rs[i][j] * x[*PivotColumn-1][j-1]; } return true; } } return false; } /* Standardizing functions */ int GetMeansSds(vector& x, TPoint *means, TPoint *sds){ /* Get means and standard deviations, coordinatewise */ int _n = x.size();int _d = x[0].size();means->resize(_d);sds->resize(_d); for (int j = 0; j < _d; j++){ double tmpMean = 0;double tmpVar = 0; for (int i = 0; i < _n; i++){ tmpMean += x[i][j]; } (*means)[j] = tmpMean/_n; for (int i = 0; i < _n; i++){ tmpVar += std::pow(x[i][j] - (*means)[j], 2); } (*sds)[j] = sqrt(tmpVar/(_n - 1)); } return 0; } int Standardize(vector &x, TPoint& means, TPoint& sds){ /* Standardize data cloud, coordinatewise */ int _n = x.size();int _d = x[0].size(); for (int i = 0; i < _n; i++){ for (int j = 0; j < _d; j++){ x[i][j] = (x[i][j] - means[j])/sds[j]; } } return 0; } int GetMeansSds(TDMatrix& x, int n, int d, TPoint *means, TPoint *sds){ /* Get means and standard deviations, coordinatewise */ for (int j = 0; j < d; j++){ double tmpMean = 0; double tmpVar = 0; for (int i = 0; i < n; i++){ tmpMean += x[i][j]; } (*means)[j] = tmpMean / n; for (int i = 0; i < n; i++){ tmpVar += std::pow(x[i][j] - (*means)[j], 2); } (*sds)[j] = sqrt(tmpVar / (n - 1)); } return 0; } int Standardize(TDMatrix &x, int n, int d, TPoint& means, TPoint& sds){ /* Standardize data cloud, coordinatewise */; for (int i = 0; i < n; i++){ for (int j = 0; j < d; j++){ x[i][j] = (x[i][j] - means[j]) / sds[j]; } } return 0; } int Standardize(TPoint &x, TPoint& means, TPoint& sds){ /* Standardize point, coordinatewise */ int _d = x.size(); for (int i = 0; i < _d; i++){ x[i] = (x[i] - means[i])/sds[i]; } return 0; } int Unstandardize(vector &x, TPoint& means, TPoint& sds){ /* Unstandardize data cloud, coordinatewise */ int _n = x.size();int _d = x[0].size(); for (int i = 0; i < _n; i++){ for (int j = 0; j < _d; j++){ x[i][j] = x[i][j]*sds[j] + means[j]; } } return 0; } int Unstandardize(TPoint &x, TPoint& means, TPoint& sds){ /* Unstandardize point, coordinatewise */ int _d = x.size(); for (int i = 0; i < _d; i++){ x[i] = x[i]*sds[i] + means[i]; } return 0; } /* Definition of public functions */ double ZonoidDepth(vector& x, TPoint& z, int& Error) /* Calculate the zonoid data depth of the point 'z' with respect to the data points 'x'. The number of data points is passed in 'NoPoints', the dimension in 'Dimension'. If an error occurs, the error code is stored in '*Error'. Possible error codes are: 0: no error, 1: simplex algorithm did not terminate within 'MaxIt' iterations. 2: not enough memory available, If no error occured, the return value is the zonoid data depth of 'z'. If the error code is 1, the return value is an lower bound to the zonoid data depth of 'z'. If the error code is 2, the return value is -1. */ { int j, k, row, PivotColumn; n = x.size(); d = z.size(); Error = 0; MakeCanonical(x,z); /* Convert tableau to canonical form. */ /* Phase I */ RSInit(z); /* Initialize tableau und basis variables. */ /* Try to eliminate the artificial variables from the basis to get a basic feasible solution. */ while (PhaseIGeneratePivotColumn(x, &PivotColumn)) RSStep(FindPivotRow(), PivotColumn); /* If the maximum objective is greater than zero, no basic feasible solution exists. Thus, 'z' lies outside the convex hull of 'x' and the zonoid data depth is 0. */ if (fabs(rs[0][d + 2]) > eps) { MakeOriginal(x,z); /* Reconstruct the original data. */ return 0; /* Return zonoid data depth. */ } /* Check if there are still artificial variables on zero level in the basis and remove them from the basis. */ for (row = 1; row <= d + 1; row++) if (bv[row - 1] < 0) { if (NoZeroRow(x, &row, &PivotColumn)) RSStep(row, PivotColumn); else CancelRow(row); } /* Phase II */ /* Try to allocate memory for 'x_sort'. */ x_sort.resize(n); if (x_sort.size() == n) { /* Allocation successful. */ lowerbound = 1.0 / n; /* Lower bound for the objective of the MP. */ /* Reinitialize the objective of the MP. */ for (j = 1; j <= d + 2; j++) for (rs[0][j] = 0, k = 1; k <= d + 1; k++) rs[0][j] += rs[k][j]; /* Revised simplex algorithm */ ItCount = 0; while (AddColumn(x)) RSStep(FindPivotRow(), 0); if ( ItCount > MaxIt ) Error = 1; // free(x_sort); /* Free the memory allocated for 'x_sort'. */ MakeOriginal(x,z); /* Reconstruct the original data. */ return 1 / (n * rs[0][d + 2]); /* Return zonoid data depth. */ } else { /* Memory for 'x_sort' could not be allocated. */ Error = 2; MakeOriginal(x,z); /* Reconstruct original data. */ return -1; } } int InConvexes(TMatrix& points, TVariables& cardinalities, TMatrix& objects, int& Error, TIntMatrix *areInConvexes) /* Check if the points are inside of the convex hull. 1: Point lies inside of the convex hull of the data 0: Point lies beyond the convex hull of the data */ { d = points[0].size(); // Prepare a structure indicating if each point lies inside the convex hull of each class int m = objects.size(); int q = cardinalities.size(); areInConvexes->resize(m); for (int i = 0; i < m; i++){(*areInConvexes)[i].resize(q);} TIntMatrix &separateAnswers = (*areInConvexes); // a link to output. just not to rewrite all occurances of separateAnswers // Split into separate data sets and // check if each point lies inside each of the convex hulls int startIndex = 0; for (int i = 0; i < q; i++){ // Cycling through data sets n = cardinalities[i]; TMatrix x(n); for (int j = 0; j < cardinalities[i]; j++){ x[j] = points[startIndex + j]; } /* Standardize */ TPoint means(d);TPoint sds(d); GetMeansSds(x, &means, &sds); Standardize(x, means, sds); for (int j = 0; j < m; j++){ // Cycling through points int PivotColumn; TPoint z = objects[j]; /* Standardize */ Standardize(z, means, sds); /* Rainer's codes (slightly modified) */ Error = 0; MakeCanonical(x,z); /* Convert tableau to canonical form. */ /* Phase I */ RSInit(z); /* Initialize tableau und basis variables. */ /* Try to eliminate the artificial variables from the basis to get a basic feasible solution. */ while (PhaseIGeneratePivotColumn(x, &PivotColumn)) RSStep(FindPivotRow(), PivotColumn); /* If the maximum objective is greater than zero, no basic feasible solution exists. Thus, 'z' lies outside the convex hull of 'x'. */ if (fabs(rs[0][d + 2]) > eps) { MakeOriginal(x,z); /* Reconstruct the original data. */ Unstandardize(z, means, sds); separateAnswers[j][i] = 0; /* Point lies outside the convex hull. */ }else{ MakeOriginal(x,z); /* Reconstruct the original data. */ Unstandardize(z, means, sds); separateAnswers[j][i] = 1; /* Point lies inside of the convex hull of the data. */ } } startIndex+=cardinalities[i]; } return 0; } ddalpha/src/PotentialDepth.cpp0000644000176200001440000000637113162771466016112 0ustar liggesusers#include "stdafx.h" double EuclidianDistance(TPoint& x, TPoint& y){ double accu = 0; for (int i = 0; i< x.size(); i++){ accu += pow(x[i] - y[i], 2); } return sqrt(accu); } double EuclidianDistance2(TPoint& x, TPoint& y){ double accu = 0; for (int i = 0; i< x.size(); i++){ accu += pow(x[i] - y[i], 2); } return (accu); } // alpha - kernel sharpness. sharp - a more double EDKernel (TPoint& x, TPoint& y, double a){ return 1/(1+a*EuclidianDistance2(x, y)); } // ss - sigma squared. sharp - a less double GKernel (TPoint& x, TPoint& y, double ss){ int d = x.size(); return pow((2*PI*ss), - d/2) * exp(-EuclidianDistance2(x, y) / (2*ss)); //04.04.2014 added power d } // ss - sigma squared. sharp - a less double VarGKernel(TPoint& x, TPoint& y, double ss){ int d = x.size(); return pow((2 * PI*ss), -d / 2) * exp(-EuclidianDistance2(x, y) / (2 * ss)); //04.04.2014 added power d } // alpha - kernel sharpness. sharp - a more double EKernel (TPoint& x, TPoint& y, double a){ return exp(-a*EuclidianDistance(x, y)); } // alpha - triangle sharpness. sharp - a more. a in (0..pi/2) double TriangleKernel (TPoint& x, TPoint& y, double a){ return 1/(EuclidianDistance(x, y)+0.000001)*tan(a); } void PotentialDepths(TMatrix& points, TVariables& cardinalities, /*OUT*/ TMatrix& depths, double (*Kernel) (TPoint& x, TPoint& y, double a), double a){ PotentialDepths(points, cardinalities, points, depths, Kernel, a, 0); } void PotentialDepths(TMatrix& points, TVariables& cardinalities, TMatrix& testpoints, /*OUT*/ TMatrix& depths, double (*Kernel) (TPoint& x, TPoint& y, double ss), double ss, int ignoreself){ int classBeginning = 0; bool var = Kernel == VarGKernel; double weight = 1; TMatrix* classPoints; TPoint* classPointsDepths; int error; // loop classes for (int i = 0; i < cardinalities.size(); classBeginning += cardinalities[i], i++){ if (var){ if (classPoints) delete[] classPoints; classPoints = new TMatrix(points.begin() + classBeginning, points.begin() + classBeginning + cardinalities[i]); if (!classPointsDepths) classPointsDepths = new TPoint(cardinalities[i]); else if (classPointsDepths->size() < cardinalities[i]) classPointsDepths->resize(cardinalities[i]); for (int c = 0; c < cardinalities[i]; c++){ (*classPointsDepths)[c] = 1 - ZonoidDepth(*classPoints, points[classBeginning + c], error); } } // loop all the points, find their potential relatively to class i for (int p = 0; p< testpoints.size(); p++){ double pointDepth = 0; // loop the points of i-th class, find the point's potential for (int c = 0; c < cardinalities[i]; c++){ // if (ignoreself && p == classBeginning + c) // ignore the potential created by this point // continue; if (var) weight = (*classPointsDepths)[c]; pointDepth += Kernel(testpoints[p], points[classBeginning + c], ss*weight); } depths[p][i] = pointDepth; } if (false) { //28.05.2014 no normalization int n = ignoreself ? points.size() - 1 : points.size(); // normalize for (int p = 0; p < testpoints.size(); p++){ depths[p][i] *= 1.0 / n; //04.04.2014 1.0*cardinalities[i]/points.size()/Kernel(points[0], points[0], a); } } } if (var){ delete[] classPoints; delete[] classPointsDepths; } } ddalpha/src/ZonoidDepth.h0000644000176200001440000000317013162771466015054 0ustar liggesusers#ifndef __ZonoidDepth__ #define __ZonoidDepth__ /* File: depth.h Created by: Rainer Dyckerhoff Last revised: 15.05.2013 Computation of the zonoid data depth. For a description of the algorithm, see: Dyckerhoff, R., Koshevoy, G., and Mosler, K. (1996) Zonoid Data Depth: Theory and Computation, in: Compstat - Proceedings in Computational Statistics, (Albert Prat, ed.), Physica-Verlag, Heidelberg, p. 235--240. */ double ZonoidDepth(vector& x, TPoint& z, int& Error); /* Calculate the zonoid data depth of the point 'z' with respect to the data points 'x'. The number of data points is passed in 'NoPoints', the dimension in 'Dimension'. If an error occurs, the error code is stored in '*Error'. Possible error codes are: 0: no error, 1: simplex algorithm did not terminate within 'MaxIt' iterations, 2: not enough memory available, If no error occured, the return value is the zonoid data depth of 'z'. If the error code is 1, the return value is an lower bound to the zonoid data depth of 'z'. If the error code is 2, the return value is -1. */ int IsInConvex(vector& x, TPoint& z, int& Error); int InConvexes(TMatrix& points, TVariables& cardinalities, TMatrix& objects, int& Error, TIntMatrix *areInConvexes); int GetMeansSds(vector& x, TPoint *means, TPoint *sds); int Standardize(vector &x, TPoint& means, TPoint& sds); int Standardize(TPoint &x, TPoint& means, TPoint& sds); int GetMeansSds(TDMatrix &x, int n, int d, TPoint *means, TPoint *sds); int Standardize(TDMatrix &x, int n, int d, TPoint& means, TPoint& sds); #endif ddalpha/src/asa047.h0000644000176200001440000000104313162771466013621 0ustar liggesusers/******************************************************************************* Author: Original FORTRAN77 version by R ONeill; C++ version by John Burkardt. http://people.sc.fsu.edu/~jburkardt/cpp_src/asa047/asa047.html *******************************************************************************/ #ifndef ASA047 #define ASA047 void nelmin(double fn(double x[]), int n, double start[], double xmin[], double *ynewlo, double reqmin, double step[], int konvge, int kcount, int *icount, int *numres, int *ifault); void timestamp(); #endif ddalpha/src/ProjectionDepth.h0000644000176200001440000000105513162771466015726 0ustar liggesusers/* File: ProjectionDepth.h Created by: Pavlo Mozharovskyi First published: 17.05.2013 Last revised: 13.11.2015 Computation of the projection depth using random sampling. For a description of the method, see: Zuo, Y.J. and Serfling, R. (2000). General notions of statistical depth function. Annals of Statistics 28, 461-482. */ int GetDepthsPrj(TDMatrix points, int n, int d, TDMatrix objects, int m, TVariables cardinalities, int k, bool newDirs, TDMatrix depths, TDMatrix directions, TDMatrix projections); ddalpha/src/Common.cpp0000644000176200001440000001357513162771466014422 0ustar liggesusers/* File: Common.cpp Created by: Pavlo Mozharovskyi First published: 17.05.2013 Last revised: 13.11.2015 Commonly used functions. */ #include "stdafx.h" // by rows TDMatrix asMatrix(double* arr, int n, int d){ TDMatrix mat = new double*[n]; for (int i = 0; i < n; i++) mat[i] = arr + i*d; return mat; } double** newM(int n, int d){ double* a = new double[n*d]; return asMatrix(a, n, d); } void deleteM(TDMatrix X){ delete[] X[0]; delete[] X; } TDMatrix copyM(TDMatrix X, int n, int d){ double* a = new double[n*d]; memcpy(a, X[0], n*d*sizeof(double)); return asMatrix(a, n, d); } void printMatrix(TDMatrix mat, int n, int d){ for (int i = 0; i < n; i++){ for (int j = 0; j < d; j++) Rcout << mat[i][j] << "\t"; Rcout << endl; } Rcout << endl; } unsigned long long choose(unsigned long long n, unsigned long long k){ unsigned long long r = n--; unsigned long long d = 2; while (d <= k){ r *= n--; r /= d++; } return r; } unsigned long long fact(unsigned long long n){ unsigned long long r = 1; unsigned long long i = 2; while (i <= n){ r *= i++; } return r; } /* -------------------------------------------------------------------------- */ /* By Rainer Dyckerhoff, modified by Pavlo Mozharovskyi */ /* Solves a uniquely solvable system of linear equations */ /* -------------------------------------------------------------------------- */ bool solveUnique(TDMatrix A, double* b, double* x, int d){ int imax, jmax; int* colp = new int[d]; double amax; for (int k = 0; k < d - 1; k++) { imax = k; amax = abs(A[k][k]); colp[k] = k; // Spaltenmaximum finden for (int i = k + 1; i < d; i++) { if (abs(A[i][k]) > amax) { amax = abs(A[i][k]); imax = i; } } // Spaltenmaximum gleich null => complete pivoting if (amax < eps_pivot) { for (int j = k + 1; j < d; j++) { for (int i = k; i < d; i++) { if (abs(A[i][j]) > amax) { amax = abs(A[i][j]); imax = i; jmax = j; } } } if (amax < eps_pivot) { delete[] colp; return false; } // Spaltentausch for (int i = 0; i < d; i++) { double tmp = A[i][k]; A[i][k] = A[i][jmax]; A[i][jmax] = tmp; } colp[k] = jmax; } // Zeilentausch if (imax != k) { for (int j = k; j < d; j++) { double tmp = A[k][j]; A[k][j] = A[imax][j]; A[imax][j] = tmp; } double tmp = b[k]; b[k] = b[imax]; b[imax] = tmp; } // Elimination for (int i = k + 1; i < d; i++) { double factor = A[i][k] / A[k][k]; for (int j = k + 1; j < d; j++){ A[i][j] -= factor * A[k][j]; } b[i] -= factor * b[k]; } } // R?cksubstituition colp[d - 1] = d - 1; for (int k = d - 1; k >= 0; k--) { x[k] = b[k] / A[k][k]; for (int i = k - 1; i >= 0; i--) b[i] -= x[k] * A[i][k]; } // Spaltenvertauschungen r?ckg?ngig machen for (int k = d - 1; k >= 0; k--) { if (colp[k] != k) { double temp = x[k]; x[k] = x[colp[k]]; x[colp[k]] = temp; } } delete[] colp; return true; } double determinant(bMatrix& m) { bMatrix mLu(m); bPM pivots(m.size1()); if (bnu::lu_factorize(mLu, pivots)) return 0; double det = 1; for (size_t i = 0; i < pivots.size(); ++i) { if (pivots(i) != i) det *= -1; det *= mLu(i, i); } return det; } double* means(TDMatrix X, int n, int d) { double* ms = new double[d]; for (unsigned i = 0; i < d; i++) { ms[i] = 0.0; for (unsigned j = 0; j < n; j++) ms[i] += X[j][i]; ms[i] /= n; } return ms; } TDMatrix cov(TDMatrix X, int n, int d) { double* means = new double[d]; double* dev = new double[d]; // zeroing TDMatrix TDMatrix covX = newM(d, d); for (unsigned k = 0; k < d; k++) for (unsigned j = 0; j < d; j++) covX[k][j] = 0; // means for (unsigned i = 0; i < d; i++) { means[i] = 0.0; for (unsigned j = 0; j < n; j++) means[i] += X[j][i]; means[i] /= n; } for (unsigned i = 0; i < n; i++) { // deviations for (unsigned k = 0; k < d; k++) { dev[k] = X[i][k] - means[k]; } // add to cov for (unsigned k = 0; k < d; k++) { for (unsigned j = 0; j < d; j++) { covX[k][j] += dev[k] * dev[j]; } } } //scale for (unsigned i = 0; i < d; i++) { for (unsigned j = 0; j < d; j++) { covX[i][j] /= n - 1; } } delete[] means; delete[] dev; return covX; } void GetDirections(TDMatrix directions, unsigned int k, unsigned int d){ for (unsigned int i = 0; i < k; i++){ double* direction = directions[i]; double sqrSum = 0; for (unsigned int j = 0; j < d; j++){ direction[j] = normDist(rEngine); sqrSum += direction[j]*direction[j]; } sqrSum = sqrt(sqrSum); for (unsigned int j = 0; j < d; j++){ direction[j] = direction[j]/sqrSum; } } } void GetProjections(TDMatrix points, int n, int d, TDMatrix directions, int k, TDMatrix projections){ for (int i = 0; i < k; i++){ double* projection = projections[i]; for (int j = 0; j < n; j++){ double sum = 0; for (int l = 0; l < d; l++){ sum += points[j][l]*directions[i][l]; } projection[j] = sum; } } } void outVector(TVariables& point){ } bool OUT_ALPHA = false; void outString(char const * str){ #ifdef DEF_OUT_ALPHA if (!OUT_ALPHA) return; Rcout << str << endl; #endif } //template void outVector(TPoint& point){ #ifdef DEF_OUT_ALPHA if (!OUT_ALPHA) return; for (int j = 0; j < point.size(); j++){ Rcout << point[j] << ", "; } Rcout << endl; #endif } void outMatrix(TMatrix& points){ #ifdef DEF_OUT_ALPHA if (!OUT_ALPHA) return; for (int i = 0; i < points.size(); i++){ //Rcout << i << ": "; for (int j = 0; j < points[i].size(); j++){ Rcout << points[i][j] << ", "; } Rcout << endl; } #endif } void outFeatures(Features fs){ #ifdef DEF_OUT_ALPHA if (!OUT_ALPHA) return; Rcout << "order\t number\t angle\t error" << endl; for (int i = 0; i < fs.size(); i++){ Rcout << fs[i].order << ",\t " << fs[i].number << ",\t " << fs[i].angle << ",\t " << fs[i].error << endl; } #endif } ddalpha/src/PotentialDepth.h0000644000176200001440000000174713162771466015561 0ustar liggesusers#ifndef PotentialDepth_h #define PotentialDepth_h // Kernel constant: 1 // alpha - kernel sharpness. sharp - a more double EDKernel (TPoint& x, TPoint& y, double a); // Kernel constant: 2 // ss - sigma squared. sharp - a less double GKernel (TPoint& x, TPoint& y, double ss); // Kernel constant: 5 // ss - sigma squared. sharp - a less double VarGKernel(TPoint& x, TPoint& y, double ss); // Kernel constant: 3 // alpha - kernel sharpness. sharp - a more double EKernel (TPoint& x, TPoint& y, double a); // Kernel constant: 4 // alpha - triangle sharpness. sharp - a more. a in (0..pi/2) double TriangleKernel (TPoint& x, TPoint& y, double a); void PotentialDepths(TMatrix& points, TVariables& cardinalities, /*OUT*/ TMatrix& depths, double (*Kernel) (TPoint& x, TPoint& y, double a), double a); void PotentialDepths(TMatrix& points, TVariables& cardinalities, TMatrix& testpoints, /*OUT*/ TMatrix& depths, double (*Kernel) (TPoint& x, TPoint& y, double a), double a, int ignoreself); #endif ddalpha/src/AlphaProcedure.cpp0000644000176200001440000002722213162771466016062 0ustar liggesusers/* File: AlphaProcedure.cpp Created by: Pavlo Mozharovskyi First published: 28.02.2013 Last revised: 13.11.2015 Contains the modified alpha-procedure for the DDalpha-classifier. For a description of the algorithm, see: Lange, T., Mosler, K. and Mozharovskyi, P. (2012). Fast nonparametric classification based on data depth. Statistical Papers. Mozharovskyi, P., Mosler, K. and Lange, T. (2013). Classifying real-world data with the DDalpha-procedure. Mimeo. */ #include "stdafx.h" #define PI2 1.5707963267948966192313216916398 /* Definition of static variables*/ static TMatrix x; static TVariables y; static unsigned int numLess; static unsigned int numMore; static int difference; static unsigned int n; static unsigned int d; static TVariables properties; static Features features; static TPoint curFeature; static int numStartFeatures; static int GetProducts(TPoint values, unsigned int power, TPoint *output){ int d = values.size(); if (power == 1){ output->resize(d); for (int i = 0; i < d; i++){(*output)[i] = values[i];} return 0; } output->resize(0); TVariables indices(power); unsigned int counter = 0; while(indices[0] < d){ output->push_back(1); for (unsigned int i = 0; i < power; i++){ (*output)[counter] *= values[indices[i]]; } counter++; int lastArray = power - 1; while(lastArray > 0 && indices[lastArray] == d - 1){lastArray--;} indices[lastArray]++; for (unsigned int i = lastArray; i < power; i++){ indices[i] = indices[lastArray]; } } return 0; } static int Compare(UPoint p1, UPoint p2){ return (p1.value < p2.value); } static int UpdateCurFeature(){ double angle = -features[features.size() - 1].angle; unsigned int yAxisNumber = features[features.size() - 1].number; for (unsigned int i = 0; i < n; i++){ curFeature[i] = curFeature[i]*cos(angle) - x[yAxisNumber][i]*sin(angle); } return 0; } static unsigned int DGetMinError(unsigned int yAxisNumber, Feature *yFeature){ /* Calculate angle of each point to the xAxis and sort them */ UPoints angles(n); for (unsigned int i = 0; i < n; i++){ angles[i] = UPoint((x[yAxisNumber][i] == 0 && curFeature[i] == 0) ? 0 : y[i] , atan2(x[yAxisNumber][i], curFeature[i])); } sort(angles.begin(), angles.end(), Compare); /* for (unsigned i = 0; i < n; i++){ cout << (angles[i].pattern > 0 ? 1 : angles[i].pattern < 0 ? 0 : 3); } cout << endl; */ /* Look for the optimal threshold */ int leftDiff = 0; unsigned int optThreshold = 0; int maxCorr = 0; double nextValue = angles[0].value; for (unsigned i = 0; i < n - 1; i++){ leftDiff += angles[i].pattern; if (angles[i + 1].value == nextValue){ continue; } nextValue = angles[i].value; int corr = max(numMore - leftDiff, numLess + leftDiff); //int corr = abs(leftDiff) + abs(difference - leftDiff); if (corr > maxCorr){ maxCorr = corr; optThreshold = i; } // cout << i << " " << corr << "; "; } // cout << endl; /* Determine the angle of the separating direction */ yFeature->angle = (angles[optThreshold].value + angles[optThreshold + 1].value) / 2. - PI2; yFeature->error = n - maxCorr; yFeature->number = yAxisNumber; return yFeature->error; } static unsigned int GetRay(TPoint *ray){ ray->resize(d); double drivingAxis = 1; for (unsigned int i = features.size() - 1; i > 0; i--){ (*ray)[features[i].number] = drivingAxis*sin(features[i].angle); drivingAxis = drivingAxis*cos(features[i].angle); } (*ray)[features[0].number] = drivingAxis; UPoints points(n); for (unsigned int i = 0; i < n; i++){ points[i].pattern = y[i]; for (unsigned int j = 0; j < d; j++){ points[i].value += (*ray)[j]*x[j][i]; } #ifdef DEF_OUT_ALPHA if (OUT_ALPHA) Rcout << points[i].value << ", "; #endif } #ifdef DEF_OUT_ALPHA if (OUT_ALPHA) Rcout << endl; #endif sort(points.begin(), points.end(), Compare); unsigned int numLeftLess = 0; unsigned int numLeftMore = 0; for (unsigned int i = 0; i < n; i++){ if (points[i].value > 0){break;} if (points[i].pattern > 0){numLeftMore++;}else{numLeftLess++;} } unsigned int errorLeftLess = numLeftMore + numLess - numLeftLess; unsigned int errorLeftMore = numLeftLess + numMore - numLeftMore; if (errorLeftLess > errorLeftMore){ for (unsigned int i = 0; i < d; i++){ (*ray)[i] *= -1.; } } #ifdef DEF_OUT_ALPHA if (OUT_ALPHA){ Rcout << errorLeftLess << " " << errorLeftMore << " "; } #endif return 0; } int Initialization(TMatrix input, TVariables output, unsigned int minFeatures){ n = input.size(); if (n == 0){return -1;} // number of points if (output.size() != n){return -1;} d = input[0].size(); if (d == 0){return -1;} // space dimension if (minFeatures == 0 || minFeatures > 2){return -1;}else{numStartFeatures = minFeatures;} /* Filling static variables x and y with input and output (transposing x) */ x.resize(d); for (unsigned int i = 0; i < d; i++){ x[i] = TPoint(n); for (unsigned int j = 0; j < n; j++){ x[i][j] = input[j][i]; } } y.resize(n); numLess = 0; numMore = 0; difference = 0; for (unsigned int i = 0; i < n; i++){ y[i] = output[i]; difference += y[i]; if (y[i] > 0){numMore++;}else{numLess++;} } return 0; } int Alpha(TPoint *ray){ /* 0. Subinitialization - clear auxiliary variables and empty and nonsignificant input axes */ properties.resize(d); for (unsigned int i = 0; i < d; i++){properties[i] = i;} // initialize properties: all available features.clear(); outMatrix(x); /* 1. Null-cycle */ if (numStartFeatures == 2){ // start with two features? Feature optFeatureX; Feature optFeatureY; for (unsigned int i = 0; i < properties.size() - 1; i++){ for (unsigned int j = i + 1; j < properties.size(); j++){ /* Calculating minimal error on the plane of the i-th and the j-th properties */ Feature tmpFeature; curFeature = x[properties[i]]; unsigned int error = DGetMinError(properties[j], &tmpFeature); #ifdef DEF_OUT_ALPHA if (OUT_ALPHA){ Rcout << properties[i] << ", " << properties[j] << ", " << tmpFeature.angle << ", " << error << ", " << endl; } #endif if (error < optFeatureY.error){optFeatureX.number = properties[i]; optFeatureY = tmpFeature;} } } features.push_back(optFeatureX); features.push_back(optFeatureY); for (unsigned int i = 0; i < properties.size(); i++){ // delete recently found X and Y properties if (properties[i] == optFeatureX.number){properties.erase(properties.begin() + i);} if (properties[i] == optFeatureY.number){properties.erase(properties.begin() + i);} } curFeature = x[features[0].number]; UpdateCurFeature(); outString("Feature 1:"); outVector(curFeature); } /* 2. Main cycle */ /* Searching an optimal feature space while empirical error rate decreases */ while(features[features.size() - 1].error > 0 && properties.size() > 0){ Feature optFeature; for (unsigned int i = 0; i < properties.size(); i++){ /* Calculating minimal error on the plane of the curFeature and the j-th properties */ Feature tmpFeature; unsigned int error = DGetMinError(properties[i], &tmpFeature); #ifdef DEF_OUT_ALPHA if (OUT_ALPHA){ Rcout << properties[i] << ", " << tmpFeature.angle << ", " << error << ", " << endl; } #endif if (error < optFeature.error){optFeature = tmpFeature;} } if (optFeature.error < features[features.size() - 1].error){ features.push_back(optFeature); for (unsigned int i = 0; i < properties.size(); i++){ // delete recently found property if (properties[i] == optFeature.number){properties.erase(properties.begin() + i);} } UpdateCurFeature(); outString("Feature :"); outVector(curFeature); }else{break;} } outString("Features:"); outFeatures(features); /* Restoring the projection vector */ GetRay(ray); return features[features.size() - 1].error; } int Classify(TMatrix input, TPoint weights, TVariables *output){ /* 0. Initialization */ unsigned int l = input.size(); if (l == 0){return -1;} unsigned int p = weights.size(); if (p == 0){return -1;} if (p > input[0].size()){return -1;} output->resize(l); /* 1. Classification of each point by comparison of their projections to 0 */ for (unsigned int i = 0; i < l; i++){ double curSum = 0; for (unsigned int j = 0; j < p; j++){curSum += weights[j]*input[i][j];} (*output)[i] = (curSum > 0) ? 1 : -1; } return 0; } int ExtendWithProducts(TMatrix input, unsigned int upToPower, TMatrix *output){ unsigned int n = input.size(); output->resize(n); for (unsigned int i = 0; i < n; i++){ for(unsigned int j = 1; j <= upToPower; j++){ TPoint extension; GetProducts(input[i], j, &extension); TPoint::iterator it; it = (*output)[i].end(); (*output)[i].insert(it, extension.begin(), extension.end()); } } return 0; } int Learn(TMatrix input, TVariables output, unsigned int minFeatures, TPoint *ray){ if (Initialization(input, output, minFeatures) != 0){return -1;} return Alpha(ray); } int LearnCV(TMatrix input, TVariables output, unsigned int minFeatures, unsigned int upToPower, unsigned int folds, TPoint *ray, unsigned int *power){ bool oldOUT_ALPHA = OUT_ALPHA; OUT_ALPHA = false; unsigned int optDegree = 0; unsigned int optError = INT_MAX; unsigned int shortFolds = folds - 1; /* Get the optimal degree (outer cross-validation loop) */ vector spaceExtensions(upToPower); for (unsigned int i = 0; i < upToPower; i++){ ExtendWithProducts(input, i + 1, &spaceExtensions[i]); // get the (i + 1)-th space extention Initialization(spaceExtensions[i], output, minFeatures); // initialize /* Prepare slider and start to cut data */ unsigned sliderSize = (unsigned)ceil((double)n / folds); unsigned chSizeVal = n%folds - 1; TMatrix xSlider(sliderSize); TVariables ySlider(sliderSize); for (unsigned int j = 0; j < sliderSize; j++){ xSlider[j] = TPoint(d); for (unsigned int k = 0; k < d; k++){xSlider[j][k] = x[k][j*shortFolds]; x[k].erase(x[k].begin() + j*shortFolds);} ySlider[j] = y[j*shortFolds]; y.erase(y.begin() + j*shortFolds); difference -= ySlider[j]; if (ySlider[j] > 0){numMore--;}else{numLess--;} } n -= sliderSize; /* Cross-validation for the (i + 1)-th space extension (inner cross-validation loop) */ unsigned int error = 0; TPoint p(0); double tmpXSliderVal; int tmpYSliderVal; for (unsigned int j = 0; j < folds; j++){ /* Estimate the current cut */ Alpha(&p); TVariables res(0); Classify(xSlider, p, &res); for (unsigned int k = 0; k < sliderSize; k++){error += abs(res[k] - ySlider[k])/2;} /* Increment the pointer */ if (j == shortFolds){break;} /* Replace the slider */ if (j == chSizeVal){ for (unsigned int l = 0; l < d; l++){x[l].push_back(xSlider[sliderSize - 1][l]);} y.push_back(ySlider[sliderSize - 1]); n++; difference += ySlider[sliderSize - 1]; if (ySlider[sliderSize - 1] > 0){numMore++;}else{numLess++;} sliderSize--; xSlider.erase(xSlider.begin() + sliderSize); ySlider.erase(ySlider.begin() + sliderSize); // for (unsigned int j = 0; j < d; j++){x[j].shrink_to_fit();} y.shrink_to_fit(); - IT IS TOO DANGEROUS } for (unsigned int k = 0; k < sliderSize; k++){ for (unsigned int l = 0; l < d; l++){tmpXSliderVal = x[l][k*shortFolds + j]; x[l][k*shortFolds + j] = xSlider[k][l]; xSlider[k][l] = tmpXSliderVal;} difference += ySlider[k]; if (ySlider[k] > 0){numMore++;}else{numLess++;} tmpYSliderVal = y[k*shortFolds + j]; y[k*shortFolds + j] = ySlider[k]; ySlider[k] = tmpYSliderVal; difference -= ySlider[k]; if (ySlider[k] > 0){numMore--;}else{numLess--;} } } /* Check if we've got a better result */ if (error < optError){optError = error; optDegree = i + 1; if (optError == 0){break;}} } OUT_ALPHA = oldOUT_ALPHA; /* Eventually get the classification ray */ Initialization(spaceExtensions[optDegree - 1], output, minFeatures); // initialize power[0] = optDegree; return Alpha(ray); } ddalpha/src/Common.h0000644000176200001440000000202113162771466014047 0ustar liggesusers/* File: Common.h Created by: Pavlo Mozharovskyi First published: 17.05.2013 Last revised: 13.11.2015 Commonly used functions. */ #pragma once const double eps_pivot = 1e-10; //#define DEF_OUT_ALPHA extern bool OUT_ALPHA; #ifndef _MSC_VER #define DEF_OUT_ALPHA #endif #ifdef DEF_OUT_ALPHA using namespace Rcpp; #endif void outString(char const * str); //template void outVector(TPoint& point); void outMatrix(TMatrix& points); void outFeatures(Features fs); #ifndef M_PI #define M_PI 3.14159265358979323846 #endif unsigned long long choose(unsigned long long n, unsigned long long k); unsigned long long fact(unsigned long long n); bool solveUnique(TDMatrix A, double* b, double* x, int d); double determinant(bMatrix& m); double* means(TDMatrix X, int n, int d); TDMatrix cov(TDMatrix X, int n, int d); void GetDirections(TDMatrix directions, unsigned int k, unsigned int d); void GetProjections(TDMatrix points, int n, int d, TDMatrix directions, int k, TDMatrix projections); ddalpha/src/depth.fd.f0000644000176200001440000011202313162771466014315 0ustar liggesusersc---------------------------------------------------------------------- c Stanislav Nagy c nagy at karlin.mff.cuni.cz c 27/06/2016 c c Fortran implementation of functional depths and kernel smoothing c - Nagy, Ferraty: Depth for Noisy Random Functions c - Nagy, Gijbels, Hlubinka: Depth-Based Recognition of Shape c Outlying Functions c c---------------------------------------------------------------------- c---------------------------------------------------------------------- c kernel smoothing of a set of functions c---------------------------------------------------------------------- SUBROUTINE KERNSM(T,X,G,M,N,H,K,R) c kernel smoothing of a single function c T vector of observation points (M) c X vector of observed values (M) c G grid to evaluate (N) c H bandwidth c K kernel code to use, see below c R resulting estimate (N) integer M,N,K integer I,J double precision T(M),X(M),G(N),R(N),H double precision DEN,P DO 10 I=1,N R(I)=0.0 DEN = 0.0 DO 5 J=1,M CALL KERN((G(I)-T(J))/H,P,K) R(I) = R(I) + X(J)*P DEN = DEN + P 5 CONTINUE IF (DEN.GT.0) THEN R(I) = R(I)/DEN ELSE R(I) = 10**6 ENDIF 10 CONTINUE RETURN END c---------------------------------------------------------------------- SUBROUTINE KERN(T,R,K) c kernel functions double precision T,R INTEGER K IF(K.EQ.1) THEN c uniform kernel IF (ABS(T).LE.1.0) THEN R = .5 ELSE R = 0.0 ENDIF ENDIF IF(K.EQ.2) THEN c triangular kernel IF (ABS(T).LE.1.0) THEN R = 1-ABS(T) ELSE R = 0.0 ENDIF ENDIF IF(K.EQ.3) THEN c Epanechnikov kernel IF (ABS(T).LE.1.0) THEN R = 3.0/4.0*(1.0-T**2.0) ELSE R = 0.0 ENDIF ENDIF IF(K.EQ.4) THEN c biweight kernel IF (ABS(T).LE.1.0) THEN R = 15.0/16.0*(1.0-T**2.0)**2 ELSE R = 0.0 ENDIF ENDIF IF(K.EQ.5) THEN c triweight kernel IF (ABS(T).LE.1.0) THEN R = 35.0/32.0*(1.0-T**2.0)**3 ELSE R = 0.0 ENDIF ENDIF IF(K.EQ.6) THEN c Gaussian kernel R = (2*4.D0*DATAN(1.D0))**(-0.5)*EXP(-0.5*T**2) ENDIF RETURN END c---------------------------------------------------------------------- SUBROUTINE CVKERNSM(T,X,G,M,N,H,NH,KER,TRE,XRE,TNRE,XNRE,NR,NT,R) c as in KERNSM, but with automated BW seletction c from the vector H(NH) c KER kernel code c TRE,XRE vectors from T,X for omission for the CV (NR*NT) c TNRE,XNRE supplementary vectors to TRE,NRE ((M-NR)*NT) c NR no of random elements for each H choice c NT no of random trials for each H choice c for each H we choose NR random points from X c compute the kernel smoother without these points c and evaluate the error. repeat NT times, then average c the errors to get the CV estimate integer M,N,NH,NR,NT,KER integer I,J,K,OM(NR),L double precision T(M),X(M),G(N),R(N),H(NH),TRE(NR*NT),XRE(NR*NT) double precision TNRE((M-NR)*NT),XNRE((M-NR)*NT) double precision TOM(NR),XOM(NR),TNOM(M-NR),XNOM(M-NR) double precision CV(NH),SR(NR),MCV DO 30 I=1,NH CV(I) = 0.0 DO 20 J=1,NT DO 5 K=1,NR TOM(K) = TRE((J-1)*NR+K) XOM(K) = XRE((J-1)*NR+K) 5 CONTINUE DO 6 K=1,(M-NR) TNOM(K) = TNRE((J-1)*(M-NR)+K) XNOM(K) = XNRE((J-1)*(M-NR)+K) 6 CONTINUE CALL KERNSM(TNOM,XNOM,TOM,(M-NR),NR,H(I),KER,SR) DO 10 K=1,NR CV(I) = CV(I) + (XOM(K)-SR(K))**2 10 CONTINUE 20 CONTINUE 30 CONTINUE K = 0 MCV = CV(1)+1 DO 40 I=1,NH IF (CV(I).LT.MCV) THEN K = I MCV = CV(I) ENDIF 40 CONTINUE CALL KERNSM(T,X,G,M,N,H(K),KER,R) RETURN END c---------------------------------------------------------------------- c fucntional data depth computation c---------------------------------------------------------------------- SUBROUTINE funD1(A,B,M,N,D,funSDEP,funHDEP,fIsdep,fIhdep,IAsdep, +IAhdep) c univariate integrated depth INTEGER N,M,D INTEGER IAsdep(M),IAhdep(M) double precision A(M*D),B(N*D),funSDEP(M),funHDEP(M), +fIsdep(M),fIhdep(M) double precision BH(N) double precision hSDEP,hHDEP INTEGER I,J,K c initializing DO 5 I=1,M funSDEP(I) = 0.0 funHDEP(I) = 0.0 fISDEP(I) = 2.0 fIHDEP(I) = 2.0 IAsdep(I) = 0 IAhdep(I) = 0 5 CONTINUE c essential loop, computing 1D depths at each point DO 30 I=1,D DO 10 K=1,N BH(K) = B((I-1)*N+K) 10 CONTINUE DO 20 J=1,M hSDEP = 0.0 hHDEP = 0.0 CALL fD1(A((I-1)*M+J),N,BH,hSDEP,hHDEP) c integrated depth evaluation funSDEP(J) = funSDEP(J) + hSDEP funHDEP(J) = funHDEP(J) + hHDEP c counting the area of the smallest depth for each function IF (hSDEP.EQ.fISDEP(J)) THEN IAsdep(J) = IAsdep(J)+1 ELSEIF (hSDEP.LT.fISDEP(J)) THEN IAsdep(J) = 1 ENDIF IF (hHDEP.EQ.fIHDEP(J)) THEN IAhdep(J) = IAhdep(J)+1 ELSEIF (hHDEP.LT.fIHDEP(J)) THEN IAhdep(J) = 1 ENDIF c infimal depth evaluation fISDEP(J) = min(fISDEP(J),hSDEP) fIHDEP(J) = min(fIHDEP(J),hHDEP) 20 CONTINUE 30 CONTINUE c dividing the resulting depths by number of points d DO 40 I=1,M funSDEP(I) = funSDEP(I)/(D+0.0) funHDEP(I) = funHDEP(I)/(D+0.0) 40 CONTINUE RETURN END c---------------------------------------------------------------------- SUBROUTINE fD1(U,N,X,SDEP,HDEP) c computes 1D simplicial and halfspace depth of U wrt X of size N c used in the univariate integrated depth double precision U,X(N),SDEP,HDEP INTEGER N,RB,RA,I RB = 0 RA = 0 DO 10 I=1,N IF (U .LE. X(I)) THEN RB = RB + 1 ENDIF IF (U .GE. X(I)) THEN RA = RA + 1 ENDIF 10 CONTINUE HDEP = min(RA+0.0,RB+0.0)/(N+0.0) SDEP = (RA+0.0)*(RB+0.0)/(K(N,2)+0.0) RETURN END c---------------------------------------------------------------------- INTEGER FUNCTION K(M,J) c combination number (m choose j) integer m,j IF (M.LT.J) THEN K=0 ELSE IF (J.EQ.1) K=M IF (J.EQ.2) K=(M*(M-1))/2 IF (J.EQ.3) K=(M*(M-1)*(M-2))/6 ENDIF RETURN END c---------------------------------------------------------------------- SUBROUTINE metrl2(A,B,M,N,D,METR) c computes a fast approximation of the L2 metric between A and B c supporting functions on regular grids only c used in the h-mode depth INTEGER N,M,D double precision A(M*D),B(N*D),METR(M*N) INTEGER I,J,K DO 15 I=1,M DO 10 J=1,N METR((J-1)*M+I) = 0.0 DO 5 K=1,D METR((J-1)*M+I) = METR((J-1)*M+I) + (A((K-1)*M+I)- +B((K-1)*N+J))**2 5 CONTINUE METR((J-1)*M+I) = sqrt(METR((J-1)*M+I) - +((A((0)*M+I)-B((0)*N+J))**2+(A((D-1)*M+I)-B((D-1)*N+J))**2) +/(2.0)) 10 CONTINUE 15 CONTINUE RETURN END c---------------------------------------------------------------------- SUBROUTINE metrC(A,B,M,N,D,METR) c computes a fast approximation of the C metric between A and B c supporting functions on regular grids only c used in the h-mode depth INTEGER N,M,D double precision A(M*D),B(N*D),METR(M*N) INTEGER I,J,K DO 15 I=1,M DO 10 J=1,N METR((J-1)*M+I) = 0.0 DO 5 K=1,D METR((J-1)*M+I) = MAX(METR((J-1)*M+I),A((K-1)*M+I)- +B((K-1)*N+J)) METR((J-1)*M+I) = MAX(METR((J-1)*M+I),-A((K-1)*M+I)+ +B((K-1)*N+J)) 5 CONTINUE 10 CONTINUE 15 CONTINUE RETURN END c---------------------------------------------------------------------- double precision FUNCTION MAX(A,B) c maximum of two numbers A and B double precision A,B IF (A.LE.B) THEN MAX = B ELSE MAX = A ENDIF RETURN END double precision FUNCTION AdjLPindicator(EVAL,J,B,V) c adjusted band depth core function, smoothing (exp(-u)), L2 metric c b is a vector of length eval c v is a matrix j*eval INTEGER EVAL, J double precision B(EVAL), V(J*EVAL) double precision MINI, MAXI, DIST, POWER INTEGER I, II DIST = 0.0 POWER = 1.0 c power in exp(-power*dist) for weighting DO 10 I=1,EVAL MINI = V((I-1)*J+1) MAXI = V((I-1)*J+1) DO 5 II=1,J IF (MINI.GT.V((I-1)*J+II)) THEN MINI = V((I-1)*J+II) ENDIF IF (MAXI.LT.V((I-1)*J+II)) THEN MAXI = V((I-1)*J+II) ENDIF 5 CONTINUE IF ((B(I).GE.MINI).AND.(B(I).LE.MAXI)) THEN DIST = DIST + 0.0 ELSE IF(B(I).GT.MAXI) THEN DIST = DIST + (B(I)-MAXI)**2 ENDIF IF(B(I).LT.MINI) THEN DIST = DIST + (MINI-B(I))**2 ENDIF ENDIF 10 CONTINUE DIST = DIST/(EVAL+0.0) DIST = EXP(-POWER*DIST) AdjLPindicator = DIST RETURN END SUBROUTINE AdjLP(EVAL,J,M,KOMB,COM,B,V,DJ) c adjusted band depth function, smoothing (exp(-u)), L2 metric c eval no of time points for each functions c J order of the depth c m sample size c komb m choose J number c com vector of all the combinations of J elements from m c b functional values of the x function, length eval c v matrix of sample funct. values, dimension [m x eval] INTEGER EVAL,J,M,KOMB,COM(KOMB*J) double precision B(EVAL),V(M*EVAL),DJ double precision VPOM(J*EVAL) INTEGER C,I,II double precision ADJLPINDICATOR DJ = 0.0 DO 10 C=1,KOMB DO 5 I=1,J DO 3 II=1,EVAL VPOM((II-1)*J+I) = V((II-1)*M+COM((C-1)*J+I)) 3 CONTINUE 5 CONTINUE DJ = DJ + AdjLPindicator(EVAL,J,B,VPOM) 10 CONTINUE DJ = DJ/(KOMB+0.0) RETURN END c---------------------------------------------------------------------- double precision FUNCTION AdjCindicator(EVAL,J,B,V) c adjusted band depth core function, smoothing (exp(-u)), C metric c b is a vector of length eval c v is a matrix j*eval INTEGER EVAL, J double precision B(EVAL), V(J*EVAL) double precision MINI, MAXI, DIST, POWER, MAX INTEGER I, II DIST = 0.0 POWER = 1.0 c power in exp(-power*dist) for weighting DO 10 I=1,EVAL MINI = V((I-1)*J+1) MAXI = V((I-1)*J+1) DO 5 II=1,J IF (MINI.GT.V((I-1)*J+II)) THEN MINI = V((I-1)*J+II) ENDIF IF (MAXI.LT.V((I-1)*J+II)) THEN MAXI = V((I-1)*J+II) ENDIF 5 CONTINUE IF ((B(I).GE.MINI).AND.(B(I).LE.MAXI)) THEN DIST = DIST + 0.0 ELSE IF(B(I).GT.MAXI) THEN DIST = MAX(DIST,(B(I)-MAXI)) ENDIF IF(B(I).LT.MINI) THEN DIST = MAX(DIST,(MINI-B(I))) ENDIF ENDIF 10 CONTINUE DIST = EXP(-POWER*DIST) AdjCindicator = DIST RETURN END SUBROUTINE AdjC(EVAL,J,M,KOMB,COM,B,V,DJ) c adjusted band depth function, smoothing (exp(-u)), C metric c eval no of time points for each functions c J order of the depth c m sample size c komb m choose J number c com vector of all the combinations of J elements from m c b functional values of the x function, length eval c v matrix of sample funct. values, dimension [m x eval] INTEGER EVAL,J,M,KOMB,COM(KOMB*J) double precision B(EVAL),V(M*EVAL),DJ double precision VPOM(J*EVAL) INTEGER C,I,II double precision ADJCINDICATOR DJ = 0.0 DO 10 C=1,KOMB DO 5 I=1,J DO 3 II=1,EVAL VPOM((II-1)*J+I) = V((II-1)*M+COM((C-1)*J+I)) 3 CONTINUE 5 CONTINUE DJ = DJ + AdjCindicator(EVAL,J,B,VPOM) 10 CONTINUE DJ = DJ/(KOMB+0.0) RETURN END c----------------------------------- c DiffDepth.f c----------------------------------- c------------------------------------- c first Difference Depth for 1D functions c for 1d functions, halfspace and simplicial depth c------------------------------------- SUBROUTINE DiffD(A,B,M,N,D,REP,RN,funSDEP,funHDEP,funSDEPm, +funHDEPm,PSDEP,PHDEP,IAsdep,IAhdep) c using fdepth computes 2dimensional diff depth of functions in A c with respect to the functions in B c M size of functions in A c N size of functions in B c D dimensionality of functions c REP is the number of simulations to approximate the real value c of depth, if set to 0 full comutation is made c RN random numbers, arrray of randoms from 1:D of size 2*REP c funSDEPm DiffDepth when taking infimum of projected depths c funSDEP DiffDepth when taking integral of projected depths c P.DEP pointwise depth, depth at each point of domain x domain c P.DEP is computed only if M=1, for simplicity INTEGER N,M,D,REP INTEGER IAsdep(M),IAhdep(M) double precision A(M*D),B(N*D),funSDEP(M),funHDEP(M),PSDEP(D*D), +PHDEP(D*D) double precision funSDEPm(M),funHDEPm(M),B1H(N),B2H(N) double precision hSDEP,hHDEP double precision hALPHA(N) INTEGER hF(N),I,J,K,RN(2*REP) DO 5 I=1,M funSDEP(I) = 0.0 funHDEP(I) = 0.0 funSDEPm(I) = 2.0 funHDEPm(I) = 2.0 IAsdep(I) = 0 IAhdep(I) = 0 5 CONTINUE c initialization for easier recognition of unfilled elements IF (M.EQ.1) THEN DO 8 I=1,(D*D) PSDEP(I) = -1.0 PHDEP(I) = -1.0 8 CONTINUE ENDIF c essential loop, computing 2D depths at each point IF (REP.EQ.0) THEN c if we compute the complete, non-approximated depth DO 30 I=1,D DO 25 J=(I+1),D c not taking into account diagonal elements, there is 0 depth DO 10 K=1,N B1H(K) = B((I-1)*N+K) B2H(K) = B((J-1)*N+K) 10 CONTINUE DO 20 L=1,M hSDEP = 0.0 hHDEP = 0.0 hALPHA(1) = N+0.0 hF(1) = N CALL fD2(A((I-1)*M+L),A((J-1)*M+L),N,B1H,B2H,hALPHA,hF, +hSDEP,hHDEP) funSDEP(L) = funSDEP(L) + hSDEP funHDEP(L) = funHDEP(L) + hHDEP c counting the area of the smallest depth for each function IF (hSDEP.EQ.funSDEPm(L)) THEN IAsdep(L) = IAsdep(L)+1 ELSEIF (hSDEP.LT.funSDEPm(L)) THEN IAsdep(L) = 1 ENDIF IF (hHDEP.EQ.funHDEPm(L)) THEN IAhdep(L) = IAhdep(L)+1 ELSEIF (hHDEP.LT.funHDEPm(L)) THEN IAhdep(L) = 1 ENDIF funSDEPm(L) = min(funSDEPm(L),hSDEP) funHDEPm(L) = min(funHDEPm(L),hHDEP) IF (M.EQ.1) THEN PSDEP((I-1)*D+J) = hSDEP PHDEP((I-1)*D+J) = hHDEP ENDIF 20 CONTINUE 25 CONTINUE 30 CONTINUE c dividing the resulting depths by number of points d c for infimal area, the result is *2+D because the diagonal c has zero depth by default, and only the lower triangle c of the matrix is actually computed DO 40 I=1,M funSDEP(I) = 2.0*funSDEP(I)/(D*(D-1.0)) c diagonals are always zero, do not count into the sum c ((D+0.0)*(D+1.0)/2+0.0-D) funHDEP(I) = 2.0*funHDEP(I)/(D*(D-1.0)) c ((D+0.0)*(D+1.0)/2+0.0-D) IAhdep(I) = IAhdep(I)*2+D IAsdep(I) = IAsdep(I)*2+D 40 CONTINUE ELSE c else of if(REP.EQ.0), that is if we approximate DO 70 I=1,REP c going through random elements DO 50 K=1,N B1H(K) = B((RN(2*I-1)-1)*N+K) B2H(K) = B((RN(2*I)-1)*N+K) 50 CONTINUE DO 60 L=1,M hSDEP = 0.0 hHDEP = 0.0 hALPHA(1) = N+0.0 hF(1) = N CALL fD2(A((RN(2*I-1)-1)*M+L),A((RN(2*I)-1)*M+L),N, +B1H,B2H,hALPHA,hF,hSDEP,hHDEP) funSDEP(L) = funSDEP(L) + hSDEP funHDEP(L) = funHDEP(L) + hHDEP c counting the area of the smallest depth for each function IF (hSDEP.EQ.funSDEPm(L)) THEN IAsdep(L) = IAsdep(L)+1 ELSEIF (hSDEP.LT.funSDEPm(L)) THEN IAsdep(L) = 1 ENDIF IF (hHDEP.EQ.funHDEPm(L)) THEN IAhdep(L) = IAhdep(L)+1 ELSEIF (hHDEP.LT.funHDEPm(L)) THEN IAhdep(L) = 1 ENDIF funSDEPm(L) = min(funSDEPm(L),hSDEP) funHDEPm(L) = min(funHDEPm(L),hHDEP) IF (M.EQ.1) THEN PSDEP((RN(2*I-1)-1)*D+RN(2*I)) = hSDEP PHDEP((RN(2*I-1)-1)*D+RN(2*I)) = hHDEP ENDIF 60 CONTINUE 70 CONTINUE DO 80 I=1,M funSDEP(I) = funSDEP(I)/(REP+0.0) funHDEP(I) = funHDEP(I)/(REP+0.0) 80 CONTINUE ENDIF RETURN END c---------------------------------------------------------------------- SUBROUTINE fD2(U,V,N,X,Y,ALPHA,F,SDEP,HDEP) c Rousseuw, P.J., and Ruts, I. (1996), AS 307 : Bivariate location c depth, Applied Statistics (JRRSS-C), vol.45, 516-526 double precision U,V,X(n),Y(n),ALPHA(n) double precision P,P2,EPS,D,XU,YU,ANGLE,ALPHK,BETAK,SDEP,HDEP INTEGER F(N),GI integer n,nums,numh,nt,i,nn,nu,ja,jb,nn2,nbad,nf,j,ki,k NUMS=0 NUMH=0 SDEP=0.0 HDEP=0.0 IF (N.LT.1) RETURN P=ACOS(-1.0) P2=P*2.0 EPS=0.00000001 NT=0 C C Construct the array ALPHA. C DO 10 I=1,N D=SQRT((X(I)-U)*(X(I)-U)+(Y(I)-V)*(Y(I)-V)) IF (D.LE.EPS) THEN NT=NT+1 ELSE XU=(X(I)-U)/D YU=(Y(I)-V)/D IF (ABS(XU).GT.ABS(YU)) THEN IF (X(I).GE.U) THEN ALPHA(I-NT)=ASIN(YU) IF(ALPHA(I-NT).LT.0.0) THEN ALPHA(I-NT)=P2+ALPHA(I-NT) ENDIF ELSE ALPHA(I-NT)=P-ASIN(YU) ENDIF ELSE IF (Y(I).GE.V) THEN ALPHA(I-NT)=ACOS(XU) ELSE ALPHA(I-NT)=P2-ACOS(XU) ENDIF ENDIF IF (ALPHA(I-NT).GE.(P2-EPS)) ALPHA(I-NT)=0.0 ENDIF 10 CONTINUE NN=N-NT IF (NN.LE.1) GOTO 60 C C Sort the array ALPHA. C CALL SORT(ALPHA,NN) C C Check whether theta=(U,V) lies outside the data cloud. C ANGLE=ALPHA(1)-ALPHA(NN)+P2 DO 20 I=2,NN ANGLE=MAX(ANGLE,(ALPHA(I)-ALPHA(I-1))) 20 CONTINUE IF (ANGLE.GT.(P+EPS)) GOTO 60 C C Make smallest alpha equal to zero, C and compute NU = number of alpha < pi. C ANGLE=ALPHA(1) NU=0 DO 30 I=1,NN ALPHA(I)=ALPHA(I)-ANGLE IF (ALPHA(I).LT.(P-EPS)) NU=NU+1 30 CONTINUE IF (NU.GE.NN) GOTO 60 C C Mergesort the alpha with their antipodal angles beta, C and at the same time update I, F(I), and NBAD. C JA=1 JB=1 ALPHK=ALPHA(1) BETAK=ALPHA(NU+1)-P NN2=NN*2 NBAD=0 I=NU NF=NN DO 40 J=1,NN2 IF ((ALPHK+EPS).LT.BETAK) THEN NF=NF+1 IF (JA.LT.NN) THEN JA=JA+1 ALPHK=ALPHA(JA) ELSE ALPHK=P2+1.0 ENDIF ELSE I=I+1 IF (I.EQ.(NN+1)) THEN I=1 NF=NF-NN ENDIF F(I)=NF NBAD=NBAD+K((NF-I),2) IF (JB.LT.NN) THEN JB=JB+1 IF ((JB+NU).LE.NN) THEN BETAK=ALPHA(JB+NU)-P ELSE BETAK=ALPHA(JB+NU-NN)+P ENDIF ELSE BETAK=P2+1.0 ENDIF ENDIF 40 CONTINUE NUMS=K(NN,3)-NBAD C C Computation of NUMH for halfspace depth. C GI=0 JA=1 ANGLE=ALPHA(1) NUMH=MIN(F(1),(NN-F(1))) DO 50 I=2,NN IF(ALPHA(I).LE.(ANGLE+EPS)) THEN JA=JA+1 ELSE GI=GI+JA JA=1 ANGLE=ALPHA(I) ENDIF KI=F(I)-GI NUMH=MIN(NUMH,MIN(KI,(NN-KI))) 50 CONTINUE C C Adjust for the number NT of data points equal to theta: C 60 NUMS=NUMS+K(NT,1)*K(NN,2)+K(NT,2)*K(NN,1)+K(NT,3) IF (N.GE.3) SDEP=(NUMS+0.0)/(K(N,3)+0.0) NUMH=NUMH+NT HDEP=(NUMH+0.0)/(N+0.0) RETURN END c---------------------------------------------------------------------- c INTEGER FUNCTION K(M,J) c integer m,j c IF (M.LT.J) THEN c K=0 c ELSE c IF (J.EQ.1) K=M c IF (J.EQ.2) K=(M*(M-1))/2 c IF (J.EQ.3) K=(M*(M-1)*(M-2))/6 c ENDIF c RETURN c END c---------------------------------------------------------------------- SUBROUTINE SORT(B,N) C Sorts an array B (of length N<=1000) in O(NlogN) time. double precision B(N),x(n) integer q(n),i,n call indexx(n,b,q) do 10 i=1,n x(i)=b(i) 10 continue do 20 i=1,n b(i)=x(q(i)) 20 continue end c---------------------------------------------------------------------- SUBROUTINE INDEXX(N,ARRIN,INDX) integer INDX(N) integer n,j,l,ir,indxt,i double precision arrin(n),q DO 11 J=1,N INDX(J)=J 11 CONTINUE L=N/2+1 IR=N 10 CONTINUE IF(L.GT.1)THEN L=L-1 INDXT=INDX(L) Q=ARRIN(INDXT) ELSE INDXT=INDX(IR) Q=ARRIN(INDXT) INDX(IR)=INDX(1) IR=IR-1 IF(IR.EQ.1)THEN INDX(1)=INDXT RETURN ENDIF ENDIF I=L J=L+L 20 IF(J.LE.IR)THEN IF(J.LT.IR)THEN IF(ARRIN(INDX(J)).LT.ARRIN(INDX(J+1)))J=J+1 ENDIF IF(Q.LT.ARRIN(INDX(J)))THEN INDX(I)=INDX(J) I=J J=J+J ELSE J=IR+1 ENDIF GO TO 20 ENDIF INDX(I)=INDXT GO TO 10 END cccccccccccccccccc c c newdepth c cccccccccccccccccc c---------------------------------------------------------------------- SUBROUTINE funMD(A,B,M,N,D,Q,funDEP) INTEGER N,M,D,I,J double precision A(M*D),B(N*D),METR1(N*N),METR2(N*M),funDEP(M) double precision Q,H,PI c Q is quantile, default 0.15, Cuevas 0.2 CALL metrl2(B,B,N,N,D,METR1) CALL metrl2(A,B,M,N,D,METR2) CALL SORT(METR1,N*N) H = METR1(INT(Q*(N*N+0.0))) PI=4.D0*DATAN(1.D0) DO 10 I=1,M*N METR2(I) = EXP(-(METR2(I)/H)**2/2.0)/SQRT(2.0*PI) 10 CONTINUE DO 20 I=1,M funDEP(I)=0.0 DO 15 J=1,N funDEP(I) = funDEP(I)+METR2((J-1)*M+I) 15 CONTINUE 20 CONTINUE RETURN END c---------------------------------------------------------------------- SUBROUTINE funRPD1(A,B,M,N,D,NPROJ,NPROJ2,V,funSDEP, +funHDEP,funRDEP) c computes fast random projection depth for 1D functions using c NPROJ simple iid gaussian processes projection and then 1D c simplicial or halfspace depth c RDEP random halfspace depth (Cuesta-Albertos, Nieto-Reyes 2008) c NPROJ2 nr of projections for RDEP INTEGER M,N,D,NPROJ,NPROJ2 double precision A(M*D),B(N*D),funSDEP(M),funHDEP(M),funRDEP(M) double precision V(D*NPROJ),AP,BP(N),VNORM INTEGER I,J,K double precision hSDEP,hHDEP DO 5 I=1,M funSDEP(I) = 0.0 funHDEP(I) = 0.0 funRDEP(I) = 2.0 5 CONTINUE c main loop DO 40 K=1,NPROJ c generating a single gaussian processes VNORM = 0.0 DO 10 I=1,D Vnorm = VNORM + V((K-1)*D+I)**2 10 CONTINUE VNORM = sqrt(VNORM - (V((K-1)*D+1)**2+V((K-1)*D+D)**2)/(2.0)) c loop projecting j-th function of the random sample B on v DO 18 J=1,N BP(J) = 0.0 DO 15 I=1,D BP(J) = BP(J)+ B((I-1)*N+J)*V((K-1)*D+I)/VNORM 15 CONTINUE BP(J) = BP(J)/(D+0.0) 18 CONTINUE c loop with projecting j-th function of the random sample A on v DO 30 J=1,M AP = 0.0 c compute projection of j-th function A DO 20 I=1,D AP = AP + A((I-1)*M+J)*V((K-1)*D+I)/VNORM 20 CONTINUE AP = AP/(D+0.0) hSDEP = 0.0 hHDEP = 0.0 CALL fD1(AP,N,BP,hSDEP,hHDEP) funSDEP(J) = funSDEP(J) + hSDEP funHDEP(J) = funHDEP(J) + hHDEP IF (K .LE. NPROJ2) THEN funRDEP(J) = min(funRDEP(J),hHDEP) ENDIF 30 CONTINUE 40 CONTINUE c averaging projection depth over all projections DO 50 I=1,M funSDEP(I) = funSDEP(I)/(NPROJ+0.0) funHDEP(I) = funHDEP(I)/(NPROJ+0.0) 50 CONTINUE RETURN END c------------------------------------- c Fraiman Muniz type integrated depths c for 1 and 2d functions, halfspace and simplicial depth c------------------------------------- SUBROUTINE funD2(A1,A2,B1,B2,M,N,D,funSDEP,funHDEP, +fIsdep,fIhdep,IAsdep,IAhdep) c using fdepth computes 2dimensional depth of functions in A1,A2 c with respect to the functions in B1,B2 c M size of functions in A c N size of functions in B c D dimensionality of functions INTEGER N,M,D INTEGER IAsdep(M),IAhdep(M) double precision A1(M*D),A2(M*D),B1(N*D),B2(N*D),funSDEP(M), +funHDEP(M),fIsdep(M),fIhdep(M) double precision B1H(N),B2H(N) double precision hSDEP,hHDEP double precision hALPHA(N) INTEGER hF(N),I,J,K DO 5 I=1,M funSDEP(I) = 0.0 funHDEP(I) = 0.0 fISDEP(I) = 2.0 fIHDEP(I) = 2.0 IAsdep(I) = 0 IAhdep(I) = 0 5 CONTINUE c essential loop, computing 2D depths at each point DO 30 I=1,D DO 10 K=1,N B1H(K) = B1((I-1)*N+K) B2H(K) = B2((I-1)*N+K) 10 CONTINUE DO 20 J=1,M hSDEP = 0.0 hHDEP = 0.0 hALPHA(1) = N+0.0 hF(1) = N CALL fD2(A1((I-1)*M+J),A2((I-1)*M+J),N,B1H,B2H,hALPHA,hF, +hSDEP,hHDEP) funSDEP(J) = funSDEP(J) + hSDEP funHDEP(J) = funHDEP(J) + hHDEP c counting the area of the smallest depth for each function IF (hSDEP.EQ.fISDEP(J)) THEN IAsdep(J) = IAsdep(J)+1 ELSEIF (hSDEP.LT.fISDEP(J)) THEN IAsdep(J) = 1 ENDIF IF (hHDEP.EQ.fIHDEP(J)) THEN IAhdep(J) = IAhdep(J)+1 ELSEIF (hHDEP.LT.fIHDEP(J)) THEN IAhdep(J) = 1 ENDIF c infimal depth evaluation fISDEP(J) = min(fISDEP(J),hSDEP) fIHDEP(J) = min(fIHDEP(J),hHDEP) 20 CONTINUE 30 CONTINUE c dividing the resulting depths by number of points d DO 40 I=1,M funSDEP(I) = funSDEP(I)/(D+0.0) funHDEP(I) = funHDEP(I)/(D+0.0) 40 CONTINUE RETURN END c---------------------------------------------------------------------- c 2D RANDOM PROJECTION DEPTH c PROJECTIONS ON WHITE NOISE c DEPENDS ON THE RANDOM NUMBER GENERATOR VERSION c---------------------------------------------------------------------- SUBROUTINE funRPD2(A1,A2,B1,B2,M,N,D,NPROJ,V,Q,funSDEP, +funHDEP,funMDEP,funSDDEP,funHDDEP) c computes fast random projection depth for 2D functions using c NPROJ simple iid gaussian processes projection and then 2D c simplicial or halfspace depth c Q is quantile used in MDEP c funDDEP is double random projection (2*D-dim)->(2-dim)->(1-dim) c and then appying Halfspace depth (equiv to quantile as Cuevas 2007) INTEGER M,N,D,NPROJ double precision A1(M*D),A2(M*D),B1(N*D),B2(N*D),funSDEP(M), +funHDEP(M),funMDEP(M),Q,funSDDEP(M),funHDDEP(M) double precision V(D*NPROJ+2*NPROJ),A1P,A2P,B1P(N),B2P(N), +VNORM,VNORMF,AP(2*M),BP(2*N),VF(2),AFP,BFP(N) c last 2*NPROJ of V are for the second random projection 2d->1d c VF(2) is the final projection INTEGER I,J,K double precision hSDEP,hHDEP,hMDEP(M),hHDDEP,hSDDEP double precision hALPHA(N) INTEGER hF(N) DO 5 I=1,M funSDEP(I) = 0.0 funHDEP(I) = 0.0 funMDEP(I) = 0.0 funSDDEP(I) = 0.0 funHDDEP(I) = 0.0 5 CONTINUE c main loop DO 40 K=1,NPROJ c generating a single gaussian processes VNORM = 0.0 VNORMF = sqrt(V(NPROJ*D+(K-1)*2+1)**2+V(NPROJ*D+(K-1)*2+2)**2) VF(1) = V(NPROJ*D+(K-1)*2+1)/VNORMF VF(2) = V(NPROJ*D+(K-1)*2+2)/VNORMF c final projection is now normed DO 10 I=1,D VNORM = VNORM + V((K-1)*D+I)**2 10 CONTINUE VNORM = sqrt(VNORM - (V((K-1)*D+1)**2+V((K-1)*D+D)**2)/(2.0)) c loop projecting j-th function of the random sample B on v DO 18 J=1,N B1P(J) = 0.0 B2P(J) = 0.0 DO 15 I=1,D B1P(J) = B1P(J)+ B1((I-1)*N+J)*V((K-1)*D+I)/VNORM B2P(J) = B2P(J)+ B2((I-1)*N+J)*V((K-1)*D+I)/VNORM 15 CONTINUE BFP(J) = B1P(J)*VF(1)+B2P(J)*VF(2) 18 CONTINUE DO 19 I=1,N BP(I)=B1P(I) BP(N+I)=B2P(I) 19 CONTINUE c loop with projecting j-th function of the random sample A on v DO 30 J=1,M A1P = 0.0 A2P = 0.0 c compute projection of j-th function A DO 20 I=1,D A1P = A1P + A1((I-1)*M+J)*V((K-1)*D+I)/VNORM A2P = A2P + A2((I-1)*M+J)*V((K-1)*D+I)/VNORM 20 CONTINUE AP(J) = A1P AP(J+M) = A2P hSDEP = 0.0 hHDEP = 0.0 hMDEP(J) = 0.0 hALPHA(1) = N+0.0 hF(1) = N CALL fD2(A1P,A2P,N,B1P,B2P,hALPHA,hF, +hSDEP,hHDEP) funSDEP(J) = funSDEP(J) + hSDEP funHDEP(J) = funHDEP(J) + hHDEP c and now the second projection of A AFP = A1P*VF(1)+A2P*VF(2) hHDDEP = 0.0 hSDDEP = 0.0 CALL fD1(AFP,N,BFP,hSDDEP,hHDDEP) funSDDEP(J) = funSDDEP(J) + hSDDEP funHDDEP(J) = funHDDEP(J) + hHDDEP 30 CONTINUE CALL funMD(AP,BP,M,N,2,Q,hMDEP) DO 35 I=1,M funMDEP(I) = funMDEP(I) + hMDEP(I) 35 CONTINUE 40 CONTINUE c averaging projection depth over all projections DO 50 I=1,M funSDEP(I) = funSDEP(I)/(NPROJ+0.0) funHDEP(I) = funHDEP(I)/(NPROJ+0.0) funMDEP(I) = funMDEP(I)/(NPROJ+0.0) funSDDEP(I) = funSDDEP(I)/(NPROJ+0.0) funHDDEP(I) = funHDDEP(I)/(NPROJ+0.0) 50 CONTINUE RETURN END c c c halfregiondepth.f c c SUBROUTINE HRD(A,B,M,N,D,FD) c computes fast half-region depth of Lopez-Pintado and Romo 2011 INTEGER M,N,D double precision A(M*D),B(N*D),FD(M) INTEGER I,J,K, U, L, UI, LI DO 30 I=1,M FD(I) = 0.0 U = 0 L = 0 DO 20 J=1,N UI = 0 LI = 0 K = 0 DO 10 WHILE ((K .LT. D) + .AND. (UI .EQ. 0 .OR. LI .EQ. 0)) K = K + 1 IF(A((K-1)*M+I) .GT. B((K-1)*N+J)) UI = UI + 1 IF(A((K-1)*M+I) .LT. B((K-1)*N+J)) LI = LI + 1 10 CONTINUE IF (UI .EQ. 0) U = U+1 IF (LI .EQ. 0) L = L+1 20 CONTINUE FD(I) = (MIN(U,L)+0.0)/(N+0.0) 30 CONTINUE RETURN END c---------------------------------------------------------------------- SUBROUTINE BD(A,B,M,N,D,FD) c computes fast 2nd order band depth of Lopez-Pintado and Romo 2009 INTEGER M,N,D double precision A(M*D),B(N*D),FD(M),L,U INTEGER I,J,JJ,K,W,WI DO 30 I=1,M FD(I) = 0.0 W = 0 DO 20 J=1,(N-1) DO 15 JJ=(J+1),N WI = 0 K = 0 DO 10 WHILE ( WI .GE. 0) c -1 means TRUE, the function is in the band of J and JJ c -2 means FALSE, the function crosses WI = WI + 1 K = K+1 L = MIN(B((K-1)*N+J),B((K-1)*N+JJ)) U = MAX(B((K-1)*N+J),B((K-1)*N+JJ)) IF (A((K-1)*M+I) .LT. L .OR. + A((K-1)*M+I) .GT. U) WI = -2 IF (WI .NE. -2 .AND. WI .EQ. D) WI = -1 10 CONTINUE IF (WI .EQ. -1) W = W+1 15 CONTINUE 20 CONTINUE FD(I) = (W+0.0)/((N*(N-1))/2 + 0.0) 30 CONTINUE RETURN END c------------------------------------- c bivariate halfspace and simplicial depth c------------------------------------- SUBROUTINE DPTH2(A1,A2,B1,B2,M,N,SDEP,HDEP) c computes 2dimensional depth of A1,A2 c with respect to B1,B2 c M size of A c N size of B INTEGER N,M double precision A1(M),A2(M),B1(N),B2(N),SDEP(M),HDEP(M) double precision hSDEP,hHDEP double precision hALPHA(N) INTEGER hF(N),I,J,K DO 5 I=1,M SDEP(I) = 0.0 HDEP(I) = 0.0 5 CONTINUE DO 10 J=1,M hSDEP = 0.0 hHDEP = 0.0 hALPHA(1) = N+0.0 hF(1) = N CALL fD2(A1(J),A2(J),N,B1,B2,hALPHA,hF, +hSDEP,hHDEP) SDEP(J) = hSDEP HDEP(J) = hHDEP 10 CONTINUE RETURN END c------------------------------------- c univariate halfspace and simplicial depth c------------------------------------- SUBROUTINE DPTH1(A1,B1,M,N,SDEP,HDEP) c computes 1dimensional depth of A1 c with respect to B1 c M size of A c N size of B INTEGER N,M double precision A1(M),B1(N),SDEP(M),HDEP(M) double precision hSDEP,hHDEP double precision hALPHA(N) INTEGER hF(N),I,J,K DO 5 I=1,M SDEP(I) = 0.0 HDEP(I) = 0.0 5 CONTINUE DO 10 J=1,M hSDEP = 0.0 hHDEP = 0.0 hALPHA(1) = N+0.0 hF(1) = N CALL fD1(A1(J),N,B1,hSDEP,hHDEP) SDEP(J) = hSDEP HDEP(J) = hHDEP 10 CONTINUE RETURN END ddalpha/src/OjaDepth.cpp0000644000176200001440000000503713162771466014662 0ustar liggesusers#include "stdafx.h" void OjaDepthsEx(TDMatrix X, TDMatrix x, int d, int n, int nx, double *depths){ int* counters = new int[d + 1]; bMatrix A (d + 1, d + 1); unsigned long long div0 = choose(n, d); TDMatrix covXtemp = cov(X,n,d); bMatrix covX(d, d); for (unsigned k = 0; k < d; k++) for (unsigned j = 0; j < d; j++) covX(k,j) = covXtemp[k][j]; deleteM(covXtemp); double S = pow(abs(determinant(covX)),-0.5); for (int obs = 0; obs < nx; obs++){ long double sumVolume = 0; unsigned long long numSimplicesChecked = 0; int p = d - 1; for (int i = 0; i < p; i++){ counters[i] = i; }counters[p] = p - 1; while (counters[0] != n - (p + 1)){ int i = p; while (i > 0 && counters[i] == n - (p + 1) + i){ i--; } counters[i]++; int j = i + 1; while (j < p + 1){ counters[j] = counters[j - 1] + 1; j++; } for (int j = 0; j < d; j++){ for (int k = 0; k < d; k++){ A(j + 1, k) = X[counters[k]][j]; } } for (int j = 0; j < d; j++){ A(j + 1, d) = x[obs][j]; } for (int k = 0; k < d + 1; k++){ A(0,k) = 1; } double volume = abs(determinant(A)); sumVolume += volume; numSimplicesChecked ++; } bool sc = numSimplicesChecked == div0; double O = sumVolume / fact(d) / div0; double depth = 1/(1+O*S); depths[obs] = depth; } delete[] counters; } void OjaDepthsApx(TDMatrix X, TDMatrix x, int d, int n, int nx, unsigned long long k, double *depths){ int* counters = new int[d + 1]; bMatrix A(d + 1, d + 1); TDMatrix covXtemp = cov(X, n, d); bMatrix covX(d, d); for (unsigned k = 0; k < d; k++) for (unsigned j = 0; j < d; j++) covX(k, j) = covXtemp[k][j]; deleteM(covXtemp); double S = pow(abs(determinant(covX)), -0.5); for (int obs = 0; obs < nx; obs++){ long double sumVolume = 0; for (unsigned long long i = 0; i < k; i++){ // Generate a combination of indices for (int j = 0; j < d; j++){ bool _new = false; do{ _new = true; counters[j] = random(n); for (int l = 0; l < j; l++){ if (counters[l] == counters[j]){ _new = false; break; } } } while (!_new); } // Construct the simplex out of it for (int j = 0; j < d; j++){ for (int k = 0; k < d; k++){ A(j + 1, k) = X[counters[k]][j]; } } for (int j = 0; j < d; j++){ A(j + 1, d) = x[obs][j]; } for (int k = 0; k < d + 1; k++){ A(0, k) = 1; } double volume = abs(determinant(A)); sumVolume += volume; } double O = sumVolume / fact(d) / k; double depth = 1 / (1 + O*S); depths[obs] = depth; } delete[] counters; } ddalpha/src/DataStructures.h0000644000176200001440000000344513162771466015607 0ustar liggesusers/* File: DataStructures.cpp Created by: Pavlo Mozharovskyi First published: 28.02.2013 Last revised: 28.02.2013 Defines the data structures used in the package. */ #pragma once #ifndef PI2 #define PI2 1.5707963267948966192313216916398 #endif #ifndef PI #define PI (PI2*2) #endif typedef vector TPoint; typedef vector > TMatrix; typedef vector > TIntMatrix; typedef vector TVariables; typedef double** TDMatrix; // by rows TDMatrix asMatrix(double* arr, int n, int d); double** newM(int n, int d); void deleteM(TDMatrix X); TDMatrix copyM(TDMatrix X, int n, int d); void printMatrix(TDMatrix mat, int n, int d); namespace bnu = boost::numeric::ublas; typedef boost::numeric::ublas::matrix bMatrix; typedef boost::numeric::ublas::vector bVector; typedef boost::numeric::ublas::permutation_matrix bPM; struct UPoint{ int pattern; double value; UPoint(int pattern = 0, double value = 0){ this->pattern = pattern; this->value = value; } }; struct Feature{ unsigned int order; int number; double angle; unsigned int error; Feature(unsigned int order = 0, int number = 0, double angle = 0, unsigned int error = INT_MAX){ this->order = order; this->number = number; this->angle = angle; this->error = error; } }; struct OrderRec { int order; double value; OrderRec(int order = -1, double value = 0) { this->order = order; this->value = value; } }; struct SortRec { double v; TPoint* p; SortRec(double v = 0, TPoint* p = NULL) { this->v = v; this->p = p; } }; struct SortRecClassified { int c; double v; SortRecClassified(int c = 0, double v = 0, int p = 0) { this->c = c; this->v = v; } }; typedef vector Features; typedef vector UPoints; ddalpha/src/AlphaProcedure.h0000644000176200001440000000155613162771466015531 0ustar liggesusers/* File: AlphaProcedure.h Created by: Pavlo Mozharovskyi First published: 28.02.2013 Last revised: 28.02.2013 Contains the modified alpha-procedure for the DDalpha-classifier. For a description of the algorithm, see: Lange, T., Mosler, K. and Mozharovskyi, P. (2012). Fast nonparametric classification based on data depth. Statistical Papers. Mozharovskyi, P., Mosler, K. and Lange, T. (2013). Classifying real-world data with the DDalpha-procedure. Mimeo. */ int ExtendWithProducts(TMatrix x, unsigned int upToPower, TMatrix *_x); int Learn(TMatrix input, TVariables output, unsigned int minFeatures, TPoint *ray); int LearnCV(TMatrix input, TVariables output, unsigned int minFeatures, unsigned int upToPower, unsigned int folds, TPoint *ray, unsigned int *power); int Classify(TMatrix input, TPoint weights, TVariables *output); ddalpha/src/Mahalanobis.cpp0000644000176200001440000000245413162771466015402 0ustar liggesusers #include "stdafx.h" void MahalanobisDepth(TDMatrix X, TDMatrix x, int d, int n, int nx, double MCD, double *depths){ double* ms = means(X, n, d); bMatrix A(d, d); if (MCD == 1){ TDMatrix covXtemp = cov(X, n, d); for (unsigned k = 0; k < d; k++) for (unsigned j = 0; j < d; j++) A(k, j) = covXtemp[k][j]; deleteM(covXtemp); } else{ #ifndef _MSC_VER Environment env("package:robustbase"); Function covMcd = env["covMcd"]; NumericMatrix X2(n,d); for (int i = 0; i < n; i++) for (int j = 0; j < d; j++) X2(i, j) = X[i][j]; List ret = covMcd(X2, false, false, MCD); NumericMatrix covXtemp = ret["cov"]; for (unsigned k = 0; k < d; k++) for (unsigned j = 0; j < d; j++) A(k, j) = covXtemp(k, j); #endif } using namespace boost::numeric::ublas; bMatrix s(d, d); s.assign(identity_matrix(d)); permutation_matrix pm(A.size1()); int res = lu_factorize(A, pm); // if (res != 0) return false; lu_substitute(A, pm, s); double *a = new double[d]; for (int i = 0; i < nx; i++){ depths[i] = 0; for (int k = 0; k < d; k++){ a[k] = 0; for (int j = 0; j < d; j++){ a[k] += (x[i][j] - ms[j])*s(j, k); } } for (int j = 0; j < d; j++){ depths[i] += (x[i][j] - ms[j])*a[j]; } depths[i] = 1.0 / ((depths[i]) + 1); } delete[] a; delete[] ms; } ddalpha/src/HD.h0000644000176200001440000001140313162771466013116 0ustar liggesusers/******************************************************************************/ /* File: HD.h */ /* Created by: Rainer Dyckerhoff, Pavlo Mozharovskyi */ /* First published: 19.06.2015 */ /* Last revised: 19.06.2015 */ /* */ /* Contains declarations of functions that compute the exact halfspace depth */ /* of a point w.r.t. a data cloud. */ /* */ /******************************************************************************/ enum HDalgs{ // random = 0, recursive = 1, // HD_DRS plane = 2, // HDc2 line = 3 //HD_Cmb }; /****************************************************************************/ /* HD_Comb computes the halfspace depth of a point z in d-space w.r.t. */ /* n data points passed in xx. */ /* HD_Comb implements the combinatorial algorithm (k = d-1) as described */ /* in Section 3.1 of "Exact computation of the halfspace depth" by */ /* Rainer Dyckerhoff and Pavlo Mozharovskyi (arXiv:1411:6927) */ /* */ /* Args: */ /* z - the point to calculate the depth for (vector of dimension d), */ /* xx - the data w.r.t. which the depth has to be computed, (matrix of */ /* dimension n x d) */ /* n - number of the data points, */ /* d - dimension of the Euclidean space. */ /* Returns: */ /* depth of z w.r.t. xx in the interval [0,1]. */ /****************************************************************************/ double HD_Comb(double* z, double** xx, int n, int d); /****************************************************************************/ /* HD_Comb2 computes the halfspace depth of a point z in d-space w.r.t. */ /* n data points passed in xx. */ /* HD_Comb2 implements the combinatorial algorithm (k = d-2) as described */ /* in Section 3.2 of "Exact computation of the halfspace depth" by */ /* Rainer Dyckerhoff and Pavlo Mozharovskyi (arXiv:1411:6927) */ /* */ /* Args: */ /* z - the point to calculate the depth for (vector of dimension d), */ /* xx - the data w.r.t. which the depth has to be computed, (matrix of */ /* dimension n x d) */ /* n - number of the data points, */ /* d - dimension of the Euclidean space. */ /* Returns: */ /* depth of z w.r.t. xx in the interval [0,1]. */ /****************************************************************************/ double HD_Comb2(double* z, double** xx, int n, int d); /****************************************************************************/ /* HD_Rec computes the halfspace depth of a point z in d-space w.r.t. */ /* n data points passed in xx. */ /* HD_Rec implements the recursive algorithm (k = 1) as described in */ /* Section 3.3 of "Exact computation of the halfspace depth" by */ /* Rainer Dyckerhoff and Pavlo Mozharovskyi (arXiv:1411:6927) */ /* */ /* Args: */ /* z - the point to calculate the depth for (vector of dimension d), */ /* xx - the data w.r.t. which the depth has to be computed, (matrix of */ /* dimension n x d) */ /* n - number of the data points, */ /* d - dimension of the Euclidean space. */ /* Returns: */ /* depth of z w.r.t. xx in the interval [0,1]. */ /****************************************************************************/ double HD_Rec(double* z, double** xx, int n, int d); ddalpha/src/SimplicialDepth.cpp0000644000176200001440000001226513162771466016240 0ustar liggesusers #include "stdafx.h" /* -------------------------------------------------------------------------- */ /* Calculates multivariate Liu (=simplicial) depth going through all */ /* possible simplices */ /* -------------------------------------------------------------------------- */ void SimplicialDepthsEx(TDMatrix X, TDMatrix x, int d, int n, int nx, double *depths){ double* b = new double[d + 1]; b[d] = 1; double* z = new double[d + 1]; int* counters = new int[d + 1]; TDMatrix A = newM(d + 1, d + 1); unsigned long long div0 = choose(n, d + 1); for (int obs = 0; obs < nx; obs++){ unsigned long long theCounter = 0; unsigned long long numSimplicesChecked = 0; for (int i = 0; i < d; i++){ counters[i] = i; }counters[d] = d - 1; while (counters[0] != n - (d + 1)){ int i = d; while (i > 0 && counters[i] == n - (d + 1) + i){ i--; } counters[i]++; int j = i + 1; while (j < d + 1){ counters[j] = counters[j - 1] + 1; j++; } for (int j = 0; j < d; j++){ for (int k = 0; k < d + 1; k++){ A[j][k] = X[counters[k]][j]; } } for (int k = 0; k < d + 1; k++){ A[d][k] = 1; } memcpy(b, x[obs], d*sizeof(double)); b[d] = 1; if (solveUnique(A, b, z, d + 1)){ bool isInside = true; for (int j = 0; j < d + 1; j++){ if (z[j] < 0){ isInside = false; break; } } if (isInside){ theCounter++; } } (numSimplicesChecked) ++; } bool sc = numSimplicesChecked == div0; double depth = (double)theCounter / div0; depths[obs] = depth; } delete[] b; delete[] z; delete[] counters; deleteM(A); } /* -------------------------------------------------------------------------- */ /* Estimates multivariate Liu (=simplicial) depth based on 'k' randomly */ /* drawn simplices */ /* -------------------------------------------------------------------------- */ void SimplicialDepthsApx(TDMatrix X, TDMatrix x, int d, int n, int nx, unsigned long long k, double *depths){ double* b = new double[d + 1]; b[d] = 1; double* z = new double[d + 1]; int* counters = new int[d + 1]; double* a = new double[(d + 1)*(d + 1)]; TDMatrix A = asMatrix(a, d + 1, d + 1); for (int obs = 0; obs < nx; obs++){ unsigned long long theCounter = 0; for (unsigned long long i = 0; i < k; i++){ // Generate a combination of indices for (int j = 0; j < d + 1; j++){ bool _new = false; do{ _new = true; counters[j] = random(n); for (int l = 0; l < j; l++){ if (counters[l] == counters[j]){ _new = false; break; } } } while (!_new); } // Construct the simplex out of it for (int j = 0; j < d; j++){ for (int l = 0; l < d + 1; l++){ A[j][l] = X[counters[l]][j]; } } for (int l = 0; l < d + 1; l++){ A[d][l] = 1; } memcpy(b, x[obs], d*sizeof(double)); b[d] = 1; // Check whether 'x' lies inside of this simplex solveUnique(A, b, z, d + 1); bool isInside = true; for (int j = 0; j < d + 1; j++){ if (z[j] < 0){ isInside = false; break; } } if (isInside){ theCounter++; } } double depth = (double)theCounter / k; depths[obs] = depth; } delete[] b; delete[] z; delete[] counters; delete[] A; delete[] a; } //#include /******************************************************************************************************************************************************* * * intSD2 * ******************************************************************************************************************************************************/ unsigned long long intSD2(double** x, int n) { const double eps = 1e-10; double* alpha = new double[n]; int nt = 0; // Wie oft ist 0 in Points enthalten ? int nh = 0; // Wie viele Punkte im Halbraum ? // Winkel alpha berechnen und array initialisieren for (int i = 0; i < n; i++) { if (hypot(x[i][0], x[i][1]) <= eps) nt++; else { alpha[i - nt] = atan2(x[i][1], x[i][0]); // alpha in (-pi,pi] if (alpha[i - nt] < -M_PI + eps) alpha[i - nt] = M_PI; // Korrektur für Zahlen wie (-1, -1e-16) if (alpha[i - nt] <= eps) nh++; } } unsigned long long nn = n - nt; // Winkel sortieren sort(alpha, alpha + nn); // Simpliziale Tiefe berechnen unsigned long long result = nn * (nn - 1) * (nn - 2) / 6; int j = nh; for (int i = 0; i < nh; i++) { while ((j <= nn - 1) && (alpha[j] - M_PI <= alpha[i] - eps)) j++; result -= (j - i - 1) * (j - i - 2) / 2; } j = 0; for (int i = nh; i < nn; i++) { while ((j <= nh - 1) && (alpha[j] + M_PI <= alpha[i] - eps)) j++; result -= (nn + j - i - 1) * (nn + j - i - 2) / 2; } delete[] alpha; result += choose(nt, 1)*choose(nn, 2) + choose(nt, 2)*choose(nn, 1) + choose(nt, 3); return result; } void SimplicialDepths2(TDMatrix X, TDMatrix x, int n, int nx, double *depths) { if (n <= 0) throw invalid_argument("n <= 0"); double c = (double)(n * (n - 1) * (n - 2) / 6); // Anzahl aller Simplizes double** xz = newM(n, 2); for (int zi = 0; zi < nx; zi++){ // z in Ursprung verschieben for (int i = 0; i < n; i++) for (int j = 0; j < 2; j++) xz[i][j] = X[i][j] - x[zi][j]; unsigned long long result = intSD2(xz, n); depths[zi] = result / c; } deleteM(xz); } ddalpha/src/Knn.h0000644000176200001440000000157613162771466013363 0ustar liggesusers/* File: Knn.h Created by: Pavlo Mozharovskyi First published: 28.02.2013 Last revised: 28.02.2013 The realization of the KNN classifier. */ int GetK_JK_Binary(TMatrix points, TVariables cardinalities, unsigned int maxk); int Knn_ClassifyOne_Binary(TPoint point, TMatrix points, TVariables cardinalities, unsigned int k); int Knn_Classify_Binary(TMatrix objects, TMatrix points, TVariables cardinalities, unsigned int k, TVariables *output); int GetDDK_JK_Binary(TMatrix points, TVariables cardinalities, unsigned int maxk); int DDKnn_ClassifyOne(TPoint point, TMatrix points, TVariables cardinalities, int k); int KnnCv(TMatrix points, TVariables labels, unsigned int kMax, int distType, unsigned int numFolds); int Knn(TMatrix objects, TMatrix points, TVariables labels, unsigned int k, int distType, TVariables *output); ddalpha/src/Mahalanobis.h0000644000176200001440000000014213162771466015037 0ustar liggesusers void MahalanobisDepth(TDMatrix X, TDMatrix x, int d, int n, int nx, double MCD, double *depths); ddalpha/src/TukeyDepth.h0000644000176200001440000000153413162771466014715 0ustar liggesusers/* File: TukeyDepth.h Created by: Pavlo Mozharovskyi First published: 28.02.2013 Last revised: 13.11.2015 Computation of the random Tukey data depth. For a description of the algorithm, see: Cuesta-Albertos, J. A. and Nieto-Reyes, A. (2008). The random Tukey depth. Computational Statistics & Data Analysis 52, 11 (July 2008), 4979-4988. Mozharovskyi, P., Mosler, K. and Lange, T. (2013). Classifying real-world data with the DDalpha-procedure. Mimeo. */ void GetDSpace(TDMatrix points, int n, int d, TVariables& cardinalities, int k, bool atOnce, TDMatrix dSpace, TDMatrix directions, TDMatrix projections); void GetDepths(double* point, TDMatrix points, int n, int d, TVariables& cardinalities, int k, bool atOnce, TDMatrix directions, TDMatrix projections, double* depths, TDMatrix ptPrjDepths /*accu, k*q */); ddalpha/src/DKnn.cpp0000644000176200001440000001354613162771466014022 0ustar liggesusers/* File: DKnn.cpp Created by: Oleksii Pokotylo First published: Last revised: The realization of the Depth-based KNN classifier of Paindaveine and Van Bever (2015). */ #include "stdafx.h" // compare UPoints descending static int Compare(UPoint p1, UPoint p2){ return (p1.value > p2.value); } void CountDepths(TDMatrix learnpoints, int* learnlabels, int nlearn, int d, TDMatrix checkpoints, int ncheck, int depthType, vector& depths, double* tempDepths, TVariables car, TDMatrix dirs, TDMatrix prjs, TDMatrix ptPrjDepths, int ndir // halfspace ){ if (depthType == 1){ for (int i = 0; i < ncheck; i++){ GetDepths(checkpoints[i], learnpoints, nlearn, d, car, ndir, i != 0, dirs, prjs, &(depths[i].value), ptPrjDepths); depths[i].pattern = learnlabels[i]; } return; } if (depthType == 2) MahalanobisDepth(learnpoints, checkpoints, d, nlearn, ncheck, 1, tempDepths); if (depthType == 3) SimplicialDepthsApx(learnpoints, checkpoints, d, nlearn, ncheck, choose(nlearn, d)*0.05, tempDepths); for (int i = 0; i < ncheck; i++){ depths[i].value = tempDepths[i]; depths[i].pattern = learnlabels[i]; } } /*parameter cv: true - return classes for each k, false - return classes for kMax only*/ void knnGetClasses(TDMatrix learnpoints, int* learnlabels, int nlearn, int d, int nClasses, TDMatrix checkpoints, int ncheck, int kMax, bool cv, int depthType, int* classes /*for cv matrix [ncheck*kMax], for classification vector [ncheck]*/ ){ // create the data structure for the reflected points double* arr = new double[nlearn*d]; TDMatrix reflected = new double*[nlearn * 2]; for (int i = 0; i < nlearn; i++){ reflected[2 * i] = learnpoints[i]; reflected[2 * i + 1] = arr + i*d; } vector depths(nlearn); double* tempDepths = new double[nlearn]; int ndir = 1000; TVariables car(1, nlearn * 2); TDMatrix dirs; if (depthType == 1) dirs = newM(ndir, d); TDMatrix prjs; if (depthType == 1) prjs = newM(ndir, nlearn * 2); TDMatrix ptPrjDepths; if (depthType == 1) ptPrjDepths = newM(ndir, 1); for (int p = 0; p < ncheck; p++){ double* point = checkpoints[p]; // reflect for (int i = 0; i < nlearn; i++){ for (int j = 0; j < d; j++){ reflected[2 * i + 1][j] = 2 * point[j] - reflected[2 * i][j]; } } // count depths of learn in reflected CountDepths(reflected, learnlabels, nlearn * 2, d, learnpoints, nlearn, depthType, depths, tempDepths, car, dirs, prjs, ptPrjDepths, ndir // halfspace ); /* for (int i = 0; i < nlearn; i++){ GetDepths(learnpoints[i], reflected, nlearn * 2, d, car, ndir, i != 0, dirs, prjs, &(depths[i].value), ptPrjDepths); depths[i].pattern = learnlabels[i]; }*/ sort(depths.begin(), depths.end(), Compare); TVariables counts(nClasses+1, 0); for (int i = 1; i <= nClasses; i++) counts[i] = 0; int prevmax = 0, prevclass = -1; for (int k = 1; k <= kMax; k++){ counts[depths[k - 1].pattern]++; int max = -1, clmax = -1; for (int cl = 1; cl <= nClasses; cl++){ if (counts[cl]>max){ max = counts[cl]; clmax = cl; } else if (max == counts[cl] && max == prevmax){ // if the same number of neighbors, use the prev rule clmax = prevclass; } } if (cv) classes[p*kMax + k - 1] = clmax; prevclass = clmax; prevmax = max; } if (!cv) classes[p] = prevclass; } delete[] tempDepths; if (depthType == 1){ deleteM(dirs); deleteM(prjs); deleteM(ptPrjDepths); } delete[] reflected; delete[] arr; } int DKnnCv(TDMatrix points, int n, int d, int* labels, unsigned int kMax, int depthType, unsigned int chunkNumber){ set unique_labels; unique_labels.insert(labels, labels + n - 1); int nClasses = unique_labels.size(); unsigned chunkSize = ceil((double)n / chunkNumber); TDMatrix learnpoints = new double*[n - chunkSize + 1]; TDMatrix checkpoints = new double*[chunkSize]; int* learnlabels = new int[n - chunkSize + 1]; int* checklabels = new int[chunkSize]; int* testlabels = new int[n]; int* classes = new int[n*kMax]; int chunk = 0; for (unsigned j = 0, l = 0, c = 0; j < n; j++){ if (j%chunkNumber){ learnpoints[l] = points[j]; learnlabels[l++] = labels[j]; } else{ checkpoints[c] = points[j]; checklabels[c++] = labels[j]; } } bool bigch = true; int hadObjects = 0; for (; chunk < chunkNumber; chunk++){ if (chunk > 0){ if (bigch && (chunkNumber)*(chunkSize - 1) + chunk == n){ bigch = false; chunkSize--; learnpoints[n - chunkSize - 1] = points[n - 1]; learnlabels[n - chunkSize - 1] = labels[n - 1]; } for (int i = 0; i < chunkSize; i++){ checkpoints[i] = learnpoints[(chunkNumber - 1)*i + chunk - 1]; checklabels[i] = learnlabels[(chunkNumber - 1)*i + chunk - 1]; learnpoints[(chunkNumber - 1)*i + chunk - 1] = points[chunkNumber*i + chunk - 1]; learnlabels[(chunkNumber - 1)*i + chunk - 1] = labels[chunkNumber*i + chunk - 1]; } } knnGetClasses(learnpoints, learnlabels, n - chunkSize, d, nClasses, checkpoints, chunkSize, kMax, true, depthType, classes + hadObjects*kMax); //store checklabels memcpy(testlabels + hadObjects, checklabels, chunkSize*sizeof(int)); hadObjects += chunkSize; } // run over k, count errors int kopt = 1, opterr = n; for (int k = 1; k <= kMax; k++){ int err = 0; for (int p = 0; p < n; p++){ if (classes[p*kMax + k - 1] != testlabels[p]) err++; } if (err < opterr){ opterr = err; kopt = k; } } delete[] learnpoints; delete[] checkpoints; delete[] learnlabels; delete[] checklabels; delete[] testlabels; delete[] classes; return kopt; } void DKnnClassify(TDMatrix points, int n, int d, int* labels, TDMatrix objects, int nobjects, unsigned int k, int depthType, int* classes){ set unique_lasbels; unique_lasbels.insert(labels, labels + n - 1); int nClasses = unique_lasbels.size(); knnGetClasses(points, labels, n, d, nClasses, objects, nobjects, k, false, depthType, classes); } ddalpha/src/DKnn.h0000644000176200001440000000070213162771466013455 0ustar liggesusers/* File: DKnn.h Created by: Oleksii Pokotylo First published: Last revised: The realization of the Depth-based KNN classifier of Paindaveine and Van Bever (2015). */ int DKnnCv(TDMatrix points, int n, int d, int* labels, unsigned int kMax, int depthType, unsigned int chunkNumber); void DKnnClassify(TDMatrix points, int n, int d, int* labels, TDMatrix objects, int nobjects, unsigned int k, int depthType, int* classes); ddalpha/src/stdafx.cpp0000644000176200001440000000055113162771466014451 0ustar liggesusers// stdafx.cpp : source file that includes just the standard includes // ddalpha.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file int random(int x){ int c = ran(x); return c == x ? random(x) : c; } ddalpha/src/Polynomial.h0000644000176200001440000000113413162771466014746 0ustar liggesusers/* File: Polynomial.h Created by: Oleksii Pokotylo First published: 07.05.2014 Last revised: 07.05.2014 Contains the polynomial classifier the DD-plot classification. For a description of the algorithm, see: Li, J., Cuesta-Albertos, J. A. and Liu, R. Y. (2012). DD-classifier: Nonparametric classification procedure based on DD-plot, Journal of the American Statistical Association 107(498): 737 - 753. */ TPoint PolynomialLearnCV(TDMatrix input, unsigned numClass1, unsigned numClass2, unsigned int maxDegree, unsigned int chunkNumber, int *degree, int *axis); ddalpha/src/asa047.cpp0000644000176200001440000002361713162771466014167 0ustar liggesusers# include # include # include # include # include using namespace std; # include "asa047.h" //****************************************************************************80 void nelmin ( double fn ( double x[] ), int n, double start[], double xmin[], double *ynewlo, double reqmin, double step[], int konvge, int kcount, int *icount, int *numres, int *ifault ) //****************************************************************************80 // // Purpose: // // NELMIN minimizes a function using the Nelder-Mead algorithm. // // Discussion: // // This routine seeks the minimum value of a user-specified function. // // Simplex function minimisation procedure due to Nelder+Mead(1965), // as implemented by O'Neill(1971, Appl.Statist. 20, 338-45), with // subsequent comments by Chambers+Ertel(1974, 23, 250-1), Benyon(1976, // 25, 97) and Hill(1978, 27, 380-2) // // The function to be minimized must be defined by a function of // the form // // function fn ( x, f ) // double fn // double x(*) // // and the name of this subroutine must be declared EXTERNAL in the // calling routine and passed as the argument FN. // // This routine does not include a termination test using the // fitting of a quadratic surface. // // Licensing: // // This code is distributed under the GNU LGPL license. // // Modified: // // 27 February 2008 // // Author: // // Original FORTRAN77 version by R ONeill. // C++ version by John Burkardt. // // Reference: // // John Nelder, Roger Mead, // A simplex method for function minimization, // Computer Journal, // Volume 7, 1965, pages 308-313. // // R ONeill, // Algorithm AS 47: // Function Minimization Using a Simplex Procedure, // Applied Statistics, // Volume 20, Number 3, 1971, pages 338-345. // // Parameters: // // Input, double FN ( double x[] ), the name of the routine which evaluates // the function to be minimized. // // Input, int N, the number of variables. // // Input/output, double START[N]. On input, a starting point // for the iteration. On output, this data may have been overwritten. // // Output, double XMIN[N], the coordinates of the point which // is estimated to minimize the function. // // Output, double YNEWLO, the minimum value of the function. // // Input, double REQMIN, the terminating limit for the variance // of function values. // // Input, double STEP[N], determines the size and shape of the // initial simplex. The relative magnitudes of its elements should reflect // the units of the variables. // // Input, int KONVGE, the convergence check is carried out // every KONVGE iterations. // // Input, int KCOUNT, the maximum number of function // evaluations. // // Output, int *ICOUNT, the number of function evaluations // used. // // Output, int *NUMRES, the number of restarts. // // Output, int *IFAULT, error indicator. // 0, no errors detected. // 1, REQMIN, N, or KONVGE has an illegal value. // 2, iteration terminated because KCOUNT was exceeded without convergence. // { double ccoeff = 0.5; double del; double dn; double dnn; double ecoeff = 2.0; double eps = 0.001; int i; int ihi; int ilo; int j; int jcount; int l; int nn; double *p; double *p2star; double *pbar; double *pstar; double rcoeff = 1.0; double rq; double x; double *y; double y2star; double ylo; double ystar; double z; // // Check the input parameters. // if ( reqmin <= 0.0 ) { *ifault = 1; return; } if ( n < 1 ) { *ifault = 1; return; } if ( konvge < 1 ) { *ifault = 1; return; } p = new double[n*(n+1)]; pstar = new double[n]; p2star = new double[n]; pbar = new double[n]; y = new double[n+1]; *icount = 0; *numres = 0; jcount = konvge; dn = ( double ) ( n ); nn = n + 1; dnn = ( double ) ( nn ); del = 1.0; rq = reqmin * dn; // // Initial or restarted loop. // for ( ; ; ) { for ( i = 0; i < n; i++ ) { p[i+n*n] = start[i]; } y[n] = fn ( start ); *icount = *icount + 1; for ( j = 0; j < n; j++ ) { x = start[j]; start[j] = start[j] + step[j] * del; for ( i = 0; i < n; i++ ) { p[i+j*n] = start[i]; } y[j] = fn ( start ); *icount = *icount + 1; start[j] = x; } // // The simplex construction is complete. // // Find highest and lowest Y values. YNEWLO = Y(IHI) indicates // the vertex of the simplex to be replaced. // ylo = y[0]; ilo = 0; for ( i = 1; i < nn; i++ ) { if ( y[i] < ylo ) { ylo = y[i]; ilo = i; } } // // Inner loop. // for ( ; ; ) { if ( kcount <= *icount ) { break; } *ynewlo = y[0]; ihi = 0; for ( i = 1; i < nn; i++ ) { if ( *ynewlo < y[i] ) { *ynewlo = y[i]; ihi = i; } } // // Calculate PBAR, the centroid of the simplex vertices // excepting the vertex with Y value YNEWLO. // for ( i = 0; i < n; i++ ) { z = 0.0; for ( j = 0; j < nn; j++ ) { z = z + p[i+j*n]; } z = z - p[i+ihi*n]; pbar[i] = z / dn; } // // Reflection through the centroid. // for ( i = 0; i < n; i++ ) { pstar[i] = pbar[i] + rcoeff * ( pbar[i] - p[i+ihi*n] ); } ystar = fn ( pstar ); *icount = *icount + 1; // // Successful reflection, so extension. // if ( ystar < ylo ) { for ( i = 0; i < n; i++ ) { p2star[i] = pbar[i] + ecoeff * ( pstar[i] - pbar[i] ); } y2star = fn ( p2star ); *icount = *icount + 1; // // Check extension. // if ( ystar < y2star ) { for ( i = 0; i < n; i++ ) { p[i+ihi*n] = pstar[i]; } y[ihi] = ystar; } // // Retain extension or contraction. // else { for ( i = 0; i < n; i++ ) { p[i+ihi*n] = p2star[i]; } y[ihi] = y2star; } } // // No extension. // else { l = 0; for ( i = 0; i < nn; i++ ) { if ( ystar < y[i] ) { l = l + 1; } } if ( 1 < l ) { for ( i = 0; i < n; i++ ) { p[i+ihi*n] = pstar[i]; } y[ihi] = ystar; } // // Contraction on the Y(IHI) side of the centroid. // else if ( l == 0 ) { for ( i = 0; i < n; i++ ) { p2star[i] = pbar[i] + ccoeff * ( p[i+ihi*n] - pbar[i] ); } y2star = fn ( p2star ); *icount = *icount + 1; // // Contract the whole simplex. // if ( y[ihi] < y2star ) { for ( j = 0; j < nn; j++ ) { for ( i = 0; i < n; i++ ) { p[i+j*n] = ( p[i+j*n] + p[i+ilo*n] ) * 0.5; xmin[i] = p[i+j*n]; } y[j] = fn ( xmin ); *icount = *icount + 1; } ylo = y[0]; ilo = 0; for ( i = 1; i < nn; i++ ) { if ( y[i] < ylo ) { ylo = y[i]; ilo = i; } } continue; } // // Retain contraction. // else { for ( i = 0; i < n; i++ ) { p[i+ihi*n] = p2star[i]; } y[ihi] = y2star; } } // // Contraction on the reflection side of the centroid. // else if ( l == 1 ) { for ( i = 0; i < n; i++ ) { p2star[i] = pbar[i] + ccoeff * ( pstar[i] - pbar[i] ); } y2star = fn ( p2star ); *icount = *icount + 1; // // Retain reflection? // if ( y2star <= ystar ) { for ( i = 0; i < n; i++ ) { p[i+ihi*n] = p2star[i]; } y[ihi] = y2star; } else { for ( i = 0; i < n; i++ ) { p[i+ihi*n] = pstar[i]; } y[ihi] = ystar; } } } // // Check if YLO improved. // if ( y[ihi] < ylo ) { ylo = y[ihi]; ilo = ihi; } jcount = jcount - 1; if ( 0 < jcount ) { continue; } // // Check to see if minimum reached. // if ( *icount <= kcount ) { jcount = konvge; z = 0.0; for ( i = 0; i < nn; i++ ) { z = z + y[i]; } x = z / dnn; z = 0.0; for ( i = 0; i < nn; i++ ) { z = z + pow ( y[i] - x, 2 ); } if ( z <= rq ) { break; } } } // // Factorial tests to check that YNEWLO is a local minimum. // for ( i = 0; i < n; i++ ) { xmin[i] = p[i+ilo*n]; } *ynewlo = y[ilo]; if ( kcount < *icount ) { *ifault = 2; break; } *ifault = 0; for ( i = 0; i < n; i++ ) { del = step[i] * eps; xmin[i] = xmin[i] + del; z = fn ( xmin ); *icount = *icount + 1; if ( z < *ynewlo ) { *ifault = 2; break; } xmin[i] = xmin[i] - del - del; z = fn ( xmin ); *icount = *icount + 1; if ( z < *ynewlo ) { *ifault = 2; break; } xmin[i] = xmin[i] + del; } if ( *ifault == 0 ) { break; } // // Restart the procedure. // for ( i = 0; i < n; i++ ) { start[i] = xmin[i]; } del = eps; *numres = *numres + 1; } delete [] p; delete [] pstar; delete [] p2star; delete [] pbar; delete [] y; return; } ddalpha/src/stdafx.h0000644000176200001440000000266513162771466014126 0ustar liggesusers/* File: stdafx.h Created by: Oleksii Pokotylo First published: 28.02.2013 Last revised: 28.02.2013 Defines the Includes needed. */ #pragma once #define BOOST_UBLAS_NO_STD_CERR #include #include #include #include #include #include #include #include #include #include #include #include #ifndef _MSC_VER #include using namespace Rcpp; #endif using namespace std; #include "DataStructures.h" #include "Common.h" #include "AlphaProcedure.h" #include "TukeyDepth.h" #include "HD.h" #include "ZonoidDepth.h" #include "Mahalanobis.h" #include "SimplicialDepth.h" #include "OjaDepth.h" #include "Knn.h" #include "Polynomial.h" #include "PotentialDepth.h" #include "ProjectionDepth.h" #include "DKnn.h" static boost::random::rand48 rEngine; static boost::random::normal_distribution normDist; #define ran(x) rEngine()%x #define setseed(x) rEngine.seed(x) //#include // ////#include ////static Rcpp::stats::UnifGenerator rndm; //#define ran(x) ((int)runif(0,x)) // // //#define setseed(x) set_seed(x,x) // //#include //using namespace Rcpp; // //#else //#define ran(x) rand()%x // //#define setseed(x) srand(x) // //#endif int random(int x); ddalpha/src/Polynomial.cpp0000644000176200001440000003004013162771466015277 0ustar liggesusers/* File: Polynomial.cpp Created by: Oleksii Pokotylo First published: 07.05.2014 Last revised: 07.05.2014 Contains the polynomial classifier the DD-plot classification. For a description of the algorithm, see: Li, J., Cuesta-Albertos, J. A. and Liu, R. Y. (2012). DD-classifier: Nonparametric classification procedure based on DD-plot, Journal of the American Statistical Association 107(498): 737 - 753. */ #include "stdafx.h" #include #include #include "asa047.h" #ifndef _MSC_VER #include using namespace Rcpp; #endif /** Calculates the empirical risk for two classes on the basis of given depths @param polynomial : Polynomial as a vector of coefficients starting with the first degree(a0 = 0 always) @param points : nx2 matrix of depths, where each column contains the depths against the corresponding class @param numClass1: Number of points belonging to the first class @return polynomial as a vector of coefficients starting with the first degree (a0 = 0 always) @throws empirical risk */ double GetEmpiricalRisk(TPoint& polynomial, TDMatrix points, unsigned numClass1, unsigned numClass2){ unsigned degree = polynomial.size(); unsigned n = numClass1 + numClass2; double risk = 0; int sign = 1; for (unsigned i = 0; i < n; i++){ if (i >= numClass1) sign = -1; double val = points[i][0]; double res = 0; for (unsigned j = 0; j 0){ // for class1 depths[i,2] > res, for class 2 < risk++; } } return risk / n; } /** Calculates the coefficients of the polynomial of a given degree going through given points and the origin @param degree : degree of the polynomial, should be equal the number of points @param points : degreex2 points for the polynomial to path through @return polynomial as a vector of coefficients starting with the first degree (a0 = 0 always) @throws runtime_error in case of singularity */ bool GetPolynomial(unsigned degree, TDMatrix points, TPoint& polynomial) { bMatrix A(degree, degree); for (unsigned i = 0; i < degree; i++){ for (unsigned j = 0; j < degree; j++){ A(i, j) = (std::pow(points[i][0], j + 1)); } } bVector b(degree); for (unsigned i = 0; i < degree; i++){ b[i] = points[i][1]; } bPM pm(A.size1()); bPM::size_type singular = boost::numeric::ublas::lu_factorize(A, pm); if (singular != 0) return false; boost::numeric::ublas::lu_substitute(A, pm, b); for (unsigned i = 0; i < degree; i++){ if (!(b[i] < std::numeric_limits::max()) || b[i] < -std::numeric_limits::max()){ return false; } polynomial[i] = b[i]; } return true; } /** Chooses the best in classification sense polynomial among "cardinality" randomly chosen polynomials, passing through "degree" arbitrary points @param points: nx2 matrix of points where first column is an absciss, n = numClass1 + numClass2 @param numClass1: Number of points belonging to the first class @param degree: Degree of the polynomial @param n_polynomials: Number of randomly chosen polynomials @return polynomial as a vector of coefficients starting with the first degree (a0 = 0 always) */ TPoint GetRandomMinPolynomial(TDMatrix points, unsigned numClass1, unsigned numClass2, unsigned degree, unsigned n_polynomials){ unsigned n = numClass1 + numClass2; vector usedIndexesX(n); vector usedIndexesY(n); int nx = 0, ny = 0; for (unsigned i = 0; i(nx - 1, degree - 1) * ny * 0.3; int numCandidates = (numOfCombinations > n_polynomials ? n_polynomials : numOfCombinations); TPoint minPolynomial(degree); double minEmpRisk = 1; TDMatrix sample = new double*[degree]; for (int i = 0; i < numCandidates; i++){ // generate sample set smp; smp.insert(usedIndexesY[random(ny)]); while (smp.size() < degree){ smp.insert(usedIndexesX[random(nx)]); } set ::const_iterator s = smp.begin(); for (unsigned j = 0; j < degree; j++, s++) { sample[j] = points[*s]; } try{ TPoint pol(degree); if(!GetPolynomial(degree, sample, pol)) continue; double rsk = GetEmpiricalRisk(pol, points, numClass1, numClass2); if (rsk < minEmpRisk) { minPolynomial = pol; minEmpRisk = rsk; } } catch (runtime_error &e){ /* singular matrix*/ } catch (...){ /* NA or inf */ } } delete[] sample; return minPolynomial; } static int _degree; static TDMatrix _points; static unsigned _numClass1; static unsigned _numClass2; /** Calculates the empirical risk for two classes on the basis of given depths and approximates it to get continuous derivative @param polynomial : Polynomial as a vector of coefficients starting with the first degree(a0 = 0 always) @param _points : nx2 matrix of depths, where each column contains the depths against the corresponding class @param _numClass1: Number of points belonging to the first class @param _numClass2: Number of points belonging to the first class @return polynomial as a vector of coefficients starting with the first degree (a0 = 0 always) */ double GetEmpiricalRiskSmoothed(double polynomial[]){ const float smoothingConstant = 100; double risk = 0; int sign = 1; for (unsigned i = 0; i < _numClass1 + _numClass2; i++){ if (i >= _numClass1) sign = -1; double val = (_points)[i][0]; double res = 0; for (unsigned j = 0; j < _degree; j++){ res += polynomial[j] * std::pow(val, j+1); } risk += 1 / (1 + exp(-smoothingConstant*((_points)[i][1] - res)*sign)); } return risk / _numClass1 + _numClass2; } TPoint nlm_optimize(TDMatrix points, TPoint& minCandidate, int numClass1, int numClass2){ /* static variables for GetEmpiricalRiskSmoothed */ _points = points; _numClass1 = numClass1; _numClass2 = numClass2; _degree = minCandidate.size(); double* start = new double[_degree]; std::copy(minCandidate.begin(), minCandidate.end(), start); int icount; int ifault; int kcount; int konvge; int n = _degree; int numres; double reqmin; double *step; double *xmin; double ynewlo; step = new double[n]; xmin = new double[n]; reqmin = 1.0E-06; for (int i = 0; i < n; i++) { // determines the size and shape of the initial simplex. // The relative magnitudes of its elements should reflect the units of the variables. step[i] = 1.0; } konvge = 10; kcount = 500; /* cout << "\n"; cout << " Starting point X:\n"; cout << "\n"; for (i = 0; i < n; i++) { cout << " " << start[i] << ""; } cout << "\n"; ynewlo = GetEmpiricalRiskSmoothed(start); cout << "\n"; cout << " F(X) = " << ynewlo << "\n"; */ nelmin(GetEmpiricalRiskSmoothed, n, start, xmin, &ynewlo, reqmin, step, konvge, kcount, &icount, &numres, &ifault); /* cout << "\n"; cout << " Return code IFAULT = " << ifault << "\n"; cout << "\n"; cout << " Estimate of minimizing value X*:\n"; cout << "\n"; for (i = 0; i < n; i++) { cout << " " << setw(14) << xmin[i] << "\n"; } cout << "\n"; cout << " F(X*) = " << ynewlo << "\n"; cout << "\n"; cout << " Number of iterations = " << icount << "\n"; cout << " Number of restarts = " << numres << "\n"; */ TPoint minpol = TPoint(xmin, xmin + _degree); delete[] start; delete[] step; delete[] xmin; return minpol; } /** Chooses the best in classification sense polynomial @param points: nx2 matrix of points where first column is an abscissa, n = numClass1 + numClass2 @param numClass1: Number of points belonging to the first class @param degree: Degree of the polynomial @param presize: if true - run evaluation 5 times @return polynomial as a vector of coefficients starting with the first degree (a0 = 0 always) */ TPoint GetOptPolynomial(TDMatrix points, unsigned numClass1, unsigned numClass2, unsigned degree, bool presize /*default = FALSE*/){ double minError = 100.1; TPoint minPol; for (int i = 0; i < (presize ? 3 : 1); i++){ TPoint minCandidate = GetRandomMinPolynomial(points, numClass1, numClass2, degree, 10 ^ degree); double err = GetEmpiricalRisk(minCandidate, points, numClass1, numClass2); if (err < minError){ minPol = minCandidate; minError = err; } //#define DEBUG #ifdef DEBUG Rcpp::Rcout << "candminPol: "; for (int i = 0; i< degree; i++){ Rcpp::Rcout << minCandidate[i] << " "; } Rcpp::Rcout << " ; error = "<< err << " \n"; #endif TPoint optPolynomial = nlm_optimize(points, minCandidate, numClass1, numClass2); err = GetEmpiricalRisk(optPolynomial, points, numClass1, numClass2); if (err <= minError){ minPol = optPolynomial; minError = err; } #ifdef DEBUG Rcpp::Rcout << "minPol: "; for (int i = 0; i< minPol.size(); i++){ Rcpp::Rcout << minPol[i] << " "; } Rcpp::Rcout << " ; error = "<< minError << " \n"; #endif } return(minPol); } /** Calculates classification error of "degree" - degree polynomial using cross - validation approach @param points: nx2 matrix of points where first column is an absciss, n = numClass1 + numClass2 @param numClass1: Number of points belonging to the first class @param degree: Degree of the polynomial @param chunkNumber: Number of chunks in which data set should be splitted, chunkNumber should be a divider of n(n%%chunkNumber = 0) @return Number of errors */ double GetCvError(TDMatrix points, unsigned numClass1, unsigned numClass2, unsigned degree, unsigned chunkNumber){ unsigned n = numClass1 + numClass2; unsigned chunkSize = ceil((double)n / chunkNumber); TDMatrix learnpoints = new double*[n - chunkSize+1]; TDMatrix checkpoints = new double*[chunkSize]; int chunk = 0; int n1 = 0; // number of Class1 points in checkpoints for (unsigned j = 0, l = 0, c = 0; j < n; j++){ if (j%chunkNumber) learnpoints[l++] = points[j]; else checkpoints[c++] = points[j]; if (j < numClass1 && (j%chunkNumber == 0)) n1++; } double err = 0; bool bigch = true; for (; chunk < chunkNumber; chunk++){ if (chunk > 0){ if (bigch && (chunkNumber)*(chunkSize - 1) + chunk == n){ bigch = false; chunkSize--; //checkpoints.resize(chunkSize); //learnpoints.resize(n - chunkSize); learnpoints[n - chunkSize - 1] = points[n - 1]; } for (int i = 0; i < chunkSize; i++){ checkpoints[i] = learnpoints[(chunkNumber - 1)*i + chunk - 1]; learnpoints[(chunkNumber - 1)*i + chunk - 1] = points[chunkNumber*i + chunk - 1]; if (chunkNumber*i + chunk == numClass1) n1--; } } TPoint minPolynomial = GetOptPolynomial(learnpoints, numClass1 - n1, numClass2 - chunkSize + n1, degree, false); double curErr = GetEmpiricalRisk(minPolynomial, checkpoints, n1, chunkSize - n1); err += curErr;// chunkSize; } delete[] learnpoints; delete[] checkpoints; return err/n; } TPoint PolynomialLearnCV(TDMatrix input, unsigned numClass1, unsigned numClass2, unsigned int maxDegree, unsigned int chunkNumber, int *degree, int *axis){ unsigned numPoints = numClass1 + numClass2; unsigned polOptDegree = 0; double polOptError = numPoints; unsigned polOptAxis = 0; TDMatrix input2 = newM(numPoints, 2); // copy for (int i = 0, tmp; i < numPoints; i++){ input2[i][0] = input[i][1]; input2[i][1] = input[i][0]; } // swap columns for (int degree = 1; degree <= maxDegree; degree++){ double polError = GetCvError(input, numClass1, numClass2, degree, chunkNumber); //cout << degree << " " << polError << "\n"; if (polError < polOptError){ polOptAxis = 0; polOptDegree = degree; polOptError = polError; } polError = GetCvError(input2, numClass1, numClass2, degree, chunkNumber); //cout << degree << " " << polError << "\n"; if (polError < polOptError){ polOptAxis = 1; polOptDegree = degree; polOptError = polError; } } //cout << polOptDegree << " " << polOptError << "\n"; TPoint polynomial = polOptAxis == 0 ? GetOptPolynomial(input, numClass1, numClass2, polOptDegree, true) : GetOptPolynomial(input2, numClass1, numClass2, polOptDegree, true); deleteM(input2); *axis = polOptAxis; *degree = polOptDegree; return polynomial; } ddalpha/src/init.c0000644000176200001440000001412613162771466013566 0ustar liggesusers#include #include // for NULL #include /* FIXME: Check these declarations against the C/Fortran source code. */ /* .C calls */ extern void AlphaLearn(double *, int *, int *, int *, int *, int *, double *); extern void AlphaClassify(void *, void *, void *, void *, void *, void *); extern void AlphaLearnCV(void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void DKnnClassify(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void DKnnLearnCv(void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void HDepth(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void HDepthEx(void *, void *, void *, void *, void *, void *, void *); extern void HDepthSpaceEx(void *, void *, void *, void *, void *, void *, void *, void *); extern void HDSpace(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void IsInConvexes(void *, void *, void *, void *, void *, void *, void *, void *); extern void KnnAffInvClassify(void *, void *, void *, void *, void *, void *, void *); extern void KnnAffInvLearnJK(void *, void *, void *, void *, void *); extern void KnnClassify(void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void KnnLearnJK(void *, void *, void *, void *, void *, void *, void *); extern void MahalanobisDepth(void *, void *, void *, void *, void *, void *, void *); extern void OjaDepth(void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void PolynomialLearnCV(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void PotentialDepthsCount(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void ProjectionDepth(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void SimplicialDepth(void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void ZDepth(void *, void *, void *, void *, void *, void *, void *); /* .Fortran calls */ extern void F77_NAME(adjc)(void *, void *, void *, void *, void *, void *, void *, void *); extern void F77_NAME(adjlp)(void *, void *, void *, void *, void *, void *, void *, void *); extern void F77_NAME(bd)(void *, void *, void *, void *, void *, void *); extern void F77_NAME(cvkernsm)(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void F77_NAME(diffd)(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void F77_NAME(dpth1)(void *, void *, void *, void *, void *, void *); extern void F77_NAME(dpth2)(void *, void *, void *, void *, void *, void *, void *, void *); extern void F77_NAME(fund1)(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void F77_NAME(fund2)(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void F77_NAME(funmd)(void *, void *, void *, void *, void *, void *, void *); extern void F77_NAME(funrpd1)(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void F77_NAME(funrpd2)(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void F77_NAME(hrd)(void *, void *, void *, void *, void *, void *); extern void F77_NAME(metrc)(void *, void *, void *, void *, void *, void *); extern void F77_NAME(metrl2)(void *, void *, void *, void *, void *, void *); static const R_CMethodDef CEntries[] = { {"AlphaLearn", (DL_FUNC) &AlphaLearn, 7}, {"AlphaClassify", (DL_FUNC) &AlphaClassify, 6}, {"AlphaLearnCV", (DL_FUNC) &AlphaLearnCV, 9}, {"DKnnClassify", (DL_FUNC) &DKnnClassify, 10}, {"DKnnLearnCv", (DL_FUNC) &DKnnLearnCv, 9}, {"HDepth", (DL_FUNC) &HDepth, 12}, {"HDepthEx", (DL_FUNC) &HDepthEx, 7}, {"HDepthSpaceEx", (DL_FUNC) &HDepthSpaceEx, 8}, {"HDSpace", (DL_FUNC) &HDSpace, 10}, {"IsInConvexes", (DL_FUNC) &IsInConvexes, 8}, {"KnnAffInvClassify", (DL_FUNC) &KnnAffInvClassify, 7}, {"KnnAffInvLearnJK", (DL_FUNC) &KnnAffInvLearnJK, 5}, {"KnnClassify", (DL_FUNC) &KnnClassify, 9}, {"KnnLearnJK", (DL_FUNC) &KnnLearnJK, 7}, {"MahalanobisDepth", (DL_FUNC) &MahalanobisDepth, 7}, {"OjaDepth", (DL_FUNC) &OjaDepth, 9}, {"PolynomialLearnCV", (DL_FUNC) &PolynomialLearnCV, 10}, {"PotentialDepthsCount", (DL_FUNC) &PotentialDepthsCount, 11}, {"ProjectionDepth", (DL_FUNC) &ProjectionDepth, 12}, {"SimplicialDepth", (DL_FUNC) &SimplicialDepth, 9}, {"ZDepth", (DL_FUNC) &ZDepth, 7}, {NULL, NULL, 0} }; static const R_FortranMethodDef FortranEntries[] = { {"adjc", (DL_FUNC) &F77_NAME(adjc), 8}, {"adjlp", (DL_FUNC) &F77_NAME(adjlp), 8}, {"bd", (DL_FUNC) &F77_NAME(bd), 6}, {"cvkernsm", (DL_FUNC) &F77_NAME(cvkernsm), 15}, {"diffd", (DL_FUNC) &F77_NAME(diffd), 15}, {"dpth1", (DL_FUNC) &F77_NAME(dpth1), 6}, {"dpth2", (DL_FUNC) &F77_NAME(dpth2), 8}, {"fund1", (DL_FUNC) &F77_NAME(fund1), 11}, {"fund2", (DL_FUNC) &F77_NAME(fund2), 13}, {"funmd", (DL_FUNC) &F77_NAME(funmd), 7}, {"funrpd1", (DL_FUNC) &F77_NAME(funrpd1), 11}, {"funrpd2", (DL_FUNC) &F77_NAME(funrpd2), 15}, {"hrd", (DL_FUNC) &F77_NAME(hrd), 6}, {"metrc", (DL_FUNC) &F77_NAME(metrc), 6}, {"metrl2", (DL_FUNC) &F77_NAME(metrl2), 6}, {NULL, NULL, 0} }; void R_init_ddalpha(DllInfo *dll) { R_registerRoutines(dll, CEntries, NULL, FortranEntries, NULL); R_useDynamicSymbols(dll, FALSE); } ddalpha/src/ddalpha.cpp0000644000176200001440000004213413162771466014560 0ustar liggesusers/* File: ddalpha.cpp Created by: Pavlo Mozharovskyi First published: 28.02.2013 Last revised: 13.11.2015 Defines the exported functions for the 'ddalpha'-package. For a description of the algorithm, see: Lange, T., Mosler, K. and Mozharovskyi, P. (2012). Fast nonparametric classification based on data depth. Statistical Papers. Mozharovskyi, P., Mosler, K. and Lange, T. (2013). Classifying real-world data with the DDalpha-procedure. Mimeo. */ #include "stdafx.h" #define EOF (-1) #ifdef __cplusplus extern "C" { #endif void Sum(double *a, double *b, double *res){ res[0] = a[0] + b[0]; } void setSeed(unsigned int random_seed){ if (random_seed != 0) { setseed(random_seed); rEngine.seed(random_seed); } else { setseed(time(NULL)); rEngine.seed(time(NULL)); } } void IsInConvexes(double *points, int *dimension, int *cardinalities, int *numClasses, double *objects, int *numObjects, int *seed, int *isInConvexes){ setSeed(*seed); int numPoints = 0;for (int i = 0; i < numClasses[0]; i++){numPoints += cardinalities[i];} TMatrix x(numPoints); for (int i = 0; i < numPoints; i++){x[i] = TPoint(dimension[0]);} for (int i = 0; i < numPoints; i++){ for (int j = 0; j < dimension[0]; j++){ x[i][j] = points[i * dimension[0] + j]; } } TMatrix o(numObjects[0]); for (int i = 0; i < numObjects[0]; i++){o[i] = TPoint(dimension[0]);} for (int i = 0; i < numObjects[0]; i++){ for (int j = 0; j < dimension[0]; j++){ o[i][j] = objects[i * dimension[0] + j]; } } TVariables cars(numClasses[0]); for (int i = 0; i < numClasses[0]; i++){ cars[i] = cardinalities[i]; } TIntMatrix answers(o.size()); int error = 0; InConvexes(x, cars, o, error, &answers); for (int i = 0; i < numObjects[0]; i++) for (int j = 0; j < numClasses[0]; j++){ isInConvexes[numClasses[0]*i+j] = answers[i][j]; } } void ZDepth(double *points, double *objects, int *numPoints, int *numObjects, int *dimension, int *seed, double *depths){ setSeed(*seed); TMatrix x(numPoints[0]); for (int i = 0; i < numPoints[0]; i++){x[i] = TPoint(dimension[0]);} for (int i = 0; i < numPoints[0]; i++){ for (int j = 0; j < dimension[0]; j++){ x[i][j] = points[i * dimension[0] + j]; } } TPoint means(*dimension); TPoint sds(*dimension); GetMeansSds(x, &means, &sds); Standardize(x, means, sds); TMatrix z(numObjects[0]); for (int i = 0; i < numObjects[0]; i++){z[i] = TPoint(dimension[0]);} for (int i = 0; i < numObjects[0]; i++){ for (int j = 0; j < dimension[0]; j++){ z[i][j] = objects[i * dimension[0] + j]; } Standardize(z[i], means, sds); int error; depths[i] = ZonoidDepth(x, z[i], error); } } void HDepth(double *points, double *objects, int *numObjects, int *dimension, int *cardinalities, int *numClasses, double *directions, double *projections, int *k, int *sameDirs, int *seed, double *depths){ setSeed(*seed); int numPoints = 0;for (int i = 0; i < numClasses[0]; i++){numPoints += cardinalities[i];} TDMatrix x = asMatrix(points, numPoints, dimension[0]); TDMatrix z = asMatrix(objects, numObjects[0], dimension[0]); TVariables cars(numClasses[0]); for (int i = 0; i < numClasses[0]; i++){ cars[i] = cardinalities[i]; } TDMatrix dirs = asMatrix(directions, k[0], *dimension); TDMatrix prjs = asMatrix(projections,k[0], numPoints); TDMatrix ptPrjDepths = newM(*k, *numClasses); for (int i = 0; i < numObjects[0]; i++){ GetDepths(z[i], x, numPoints, *dimension, cars, k[0], i == 0 ? 0 : sameDirs[0] /*at the first step fill the matrices*/, dirs, prjs, depths + i * numClasses[0], ptPrjDepths); /* for (int j = 0; j < numClasses[0]; j++){ depths[i * numClasses[0] + j] = dps[j]; }*/ } deleteM(ptPrjDepths); /* if (*sameDirs){ for (int i = 0; i < k[0] * dimension[0]; i++){ directions[i] = dirs[i / dimension[0]][i%dimension[0]]; } for (int i = 0; i < k[0] * numPoints; i++){ projections[i] = prjs[i / numPoints][i%numPoints]; } } deleteM(dirs); deleteM(prjs); */ delete[] x; delete[] z; delete[] dirs; delete[] prjs; } void HDSpace(double *points, int *dimension, int *cardinalities, int *numClasses, int *k, int *sameDirs, int *seed, double *dSpace, double *directions, double *projections){ setSeed(*seed); int numPoints = 0;for (int i = 0; i < numClasses[0]; i++){numPoints += cardinalities[i];} TDMatrix x = asMatrix(points, numPoints, *dimension); TVariables cars(numClasses[0]); for (int i = 0; i < numClasses[0]; i++){ cars[i] = cardinalities[i]; } TDMatrix dsps = asMatrix(dSpace, numPoints, *numClasses); TDMatrix dirs = asMatrix(directions, k[0], (*dimension)); TDMatrix prjs = asMatrix(projections, k[0], (numPoints)); GetDSpace(x, numPoints, *dimension, cars, k[0], sameDirs[0], dsps, dirs, prjs); /* for (int i = 0; i < numPoints*numClasses[0]; i++){ dSpace[i] = dsps[i/numClasses[0]][i%numClasses[0]]; } */ /* if (*sameDirs){ for (int i = 0; i < k[0] * dimension[0]; i++){ directions[i] = dirs[i / dimension[0]][i%dimension[0]]; } for (int i = 0; i < k[0] * numPoints; i++){ projections[i] = prjs[i / numPoints][i%numPoints]; } } deleteM(dirs); deleteM(prjs); */ delete[] x; delete[] dsps; delete[] dirs; delete[] prjs; } void HDepthSpaceEx(double *points, double *objects, int *cardinalities, int *numClasses, int *numObjects, int *dimension, int *algNo, double *depths){ double(*func)(double *z, double **xx, int n, int d); switch ((HDalgs)*algNo) { case recursive: func = &HD_Rec; break; case plane: func = &HD_Comb2; break; case line: func = &HD_Comb; break; default: func = 0; break; } TDMatrix x = asMatrix(objects, *numObjects, *dimension); int classBegin = 0; if (func) for (int c = 0; c < *numClasses; c++){ TDMatrix X = asMatrix(points+classBegin, cardinalities[c], *dimension); // printMatrix(X, cardinalities[c], *dimension); for (int i = 0; i < *numObjects; i++){ depths[c * (*numObjects) + i] = func(x[i], X, cardinalities[c], *dimension); } classBegin += cardinalities[c]* *dimension; delete[] X; } delete[] x; } void HDepthEx(double *points, double *objects, int *numPoints, int *numObjects, int *dimension, int *algNo, double *depths){ double(*func)(double *z, double **xx, int n, int d); switch ((HDalgs)*algNo) { case recursive: func = &HD_Rec; break; case plane: func = &HD_Comb2; break; case line: func = &HD_Comb; break; default: func = 0; break; } TDMatrix X = asMatrix(points, *numPoints, *dimension); TDMatrix x = asMatrix(objects, *numObjects, *dimension); if (func) for (int i = 0; i < *numObjects; i++){ depths[i] = func(x[i], X, *numPoints, *dimension); } delete[] X; delete[] x; } void MahalanobisDepth(double *points, double *objects, int *numPoints, int *numObjects, int *dimension, double* MCD, double *depths){ TDMatrix X = asMatrix(points, *numPoints, *dimension); TDMatrix x = asMatrix(objects, *numObjects, *dimension); MahalanobisDepth(X, x, *dimension, *numPoints, *numObjects, *MCD, depths); delete[] X; delete[] x; } void OjaDepth(double *points, double *objects, int *numPoints, int *numObjects, int *dimension, int *seed, int* exact, int *k, double *depths){ setSeed(*seed); TDMatrix X = asMatrix(points, *numPoints, *dimension); TDMatrix x = asMatrix(objects, *numObjects, *dimension); if (*exact) OjaDepthsEx(X, x, *dimension, *numPoints, *numObjects, depths); else{ long long K = ((long long)2000000000)*k[0] + k[1]; OjaDepthsApx(X, x, *dimension, *numPoints, *numObjects, K, depths); } delete[] X; delete[] x; } void SimplicialDepth(double *points, double *objects, int *numPoints, int *numObjects, int *dimension, int *seed, int* exact, int *k, double *depths){ setSeed(*seed); TDMatrix X = asMatrix(points, *numPoints, *dimension); TDMatrix x = asMatrix(objects, *numObjects, *dimension); if (*dimension == 2) SimplicialDepths2(X, x, *numPoints, *numObjects, depths); else if (*exact) SimplicialDepthsEx(X, x, *dimension, *numPoints, *numObjects, depths); else { long long K = ((long long)2000000000)*k[0] + k[1]; SimplicialDepthsApx(X, x, *dimension, *numPoints, *numObjects, K, depths); } delete[] X; delete[] x; } void AlphaLearn(double *points, int *numPoints, int *dimension, int *cardinalities, int *degree, int *minFeatures, double *ray){ TMatrix x(numPoints[0]); for (int i = 0; i < numPoints[0]; i++){x[i] = TPoint(dimension[0]);} for (int i = 0; i < numPoints[0]; i++){ for (int j = 0; j < dimension[0]; j++){ x[i][j] = points[i * dimension[0] + j]; } } TVariables y(numPoints[0]); for (int i = 0; i < cardinalities[0]; i++){y[i] = 1;} for (int i = cardinalities[0]; i < numPoints[0]; i++){y[i] = -1;} TMatrix _x; ExtendWithProducts(x, degree[0], &_x); TPoint direction; OUT_ALPHA = true; Learn(_x, y, minFeatures[0], &direction); ray[0] = degree[0]; for (unsigned i = 0; i < direction.size(); i++){ ray[i + 1] = direction[i]; } } void AlphaLearnCV(double *points, int *numPoints, int *dimension, int *cardinalities, int *upToPower, int *numFolds, int *minFeatures, int *debug, double *ray){ TMatrix x(numPoints[0],TPoint(dimension[0])); for (int i = 0; i < numPoints[0]; i++){ for (int j = 0; j < dimension[0]; j++){ x[i][j] = points[i * dimension[0] + j]; } } TVariables y(numPoints[0]); for (int i = 0; i < cardinalities[0]; i++){y[i] = 1;} for (int i = cardinalities[0]; i < numPoints[0]; i++){y[i] = -1;} TPoint direction; unsigned int power; OUT_ALPHA = (debug[0])!=0; LearnCV(x, y, minFeatures[0], upToPower[0], numFolds[0], &direction, &power); ray[0] = power; for (unsigned i = 0; i < direction.size(); i++){ ray[i + 1] = direction[i]; } } void AlphaClassify(double *points, int *numPoints, int *dimension, int *degree, double *ray, int *output){ TMatrix x(numPoints[0]); for (int i = 0; i < numPoints[0]; i++){x[i] = TPoint(dimension[0]);} for (int i = 0; i < numPoints[0]; i++){ for (int j = 0; j < dimension[0]; j++){ x[i][j] = points[i * dimension[0] + j]; } } TMatrix _x; ExtendWithProducts(x, degree[0], &_x); TPoint direction(_x[0].size()); for (unsigned i = 0; i < _x[0].size(); i++){ direction[i] = ray[i + 1]; } TVariables y; Classify(_x, direction, &y); for (int i = 0; i < numPoints[0]; i++){ output[i] = y[i]; } } void KnnAffInvLearnJK(double *points, int *dimension, int *cardinalities, int *maxk, int *k){ int numPoints = cardinalities[0] + cardinalities[1]; TMatrix x(numPoints); for (int i = 0; i < numPoints; i++){x[i] = TPoint(dimension[0]);} for (int i = 0; i < numPoints; i++){ for (int j = 0; j < dimension[0]; j++){ x[i][j] = points[i * dimension[0] + j]; } } TVariables cars(2);cars[0] = cardinalities[0];cars[1] = cardinalities[1]; k[0] = GetK_JK_Binary(x, cars, maxk[0]); } void KnnAffInvClassify(double *objects, int *numObjects, double *points, int *dimension, int *cardinalities, int *k, int *output){ int numPoints = cardinalities[0] + cardinalities[1]; TMatrix x(numPoints); for (int i = 0; i < numPoints; i++){x[i] = TPoint(dimension[0]);} for (int i = 0; i < numPoints; i++){ for (int j = 0; j < dimension[0]; j++){ x[i][j] = points[i * dimension[0] + j]; } } TVariables cars(2);cars[0] = cardinalities[0];cars[1] = cardinalities[1]; TMatrix y(numObjects[0]); for (int i = 0; i < numObjects[0]; i++){y[i] = TPoint(dimension[0]);} for (int i = 0; i < numObjects[0]; i++){ for (int j = 0; j < dimension[0]; j++){ y[i][j] = objects[i * dimension[0] + j]; } } TVariables result; Knn_Classify_Binary(y, x, cars, k[0], &result); for (int i = 0; i < numObjects[0]; i++){ output[i] = result[i]; } } void KnnLearnJK(double *points, int *labels, int *numPoints, int *dimension, int *kmax, int *distType, int *k){ TMatrix x(numPoints[0]);TVariables y(numPoints[0]); for (int i = 0; i < numPoints[0]; i++){ x[i] = TPoint(dimension[0]); for (int j = 0; j < dimension[0]; j++){ x[i][j] = points[i * dimension[0] + j]; } y[i] = labels[i]; } k[0] = KnnCv(x, y, kmax[0], distType[0], 0); } void KnnClassify(double *objects, int *numObjects, double *points, int *labels, int *numPoints, int *dimension, int *k, int *distType, int *output){ TMatrix x(numPoints[0]);TVariables y(numPoints[0]); for (int i = 0; i < numPoints[0]; i++){ x[i] = TPoint(dimension[0]); for (int j = 0; j < dimension[0]; j++){ x[i][j] = points[i * dimension[0] + j]; } y[i] = labels[i]; } TMatrix z(numObjects[0]); for (int i = 0; i < numObjects[0]; i++){ z[i] = TPoint(dimension[0]); for (int j = 0; j < dimension[0]; j++){ z[i][j] = objects[i * dimension[0] + j]; } } TVariables result; Knn(z, x, y, k[0], distType[0], &result); for (int i = 0; i < numObjects[0]; i++){ output[i] = result[i]; } } void DKnnLearnCv(double *points, int *labels, int *numPoints, int *dimension, int *kmax, int *depthType, int *k, int* chunkNumber, int *seed){ setSeed(*seed); TDMatrix x = asMatrix(points, *numPoints, *dimension); *k = DKnnCv(x, *numPoints, *dimension, labels, *kmax, *depthType, *chunkNumber); delete[] x; } void DKnnClassify(double *objects, int *numObjects, double *points, int *labels, int *numPoints, int *dimension, int *k, int *depthType, int *seed, int *output){ setSeed(*seed); TDMatrix x = asMatrix(points, *numPoints, *dimension); TDMatrix z = asMatrix(objects, *numObjects, *dimension); DKnnClassify(x, *numPoints, *dimension, labels, z, *numObjects, *k, *depthType, output); delete[] x; delete[] z; } void PolynomialLearnCV(double *points, int *numPoints, int *dimension, int *cardinalities, int *maxDegree, int *chunkNumber, int *seed, /*OUT*/ int *degree, /*OUT*/ int *axis, /*OUT*/ double *polynomial){ setSeed(*seed); TDMatrix x = asMatrix(points, numPoints[0], dimension[0]); TVariables y(numPoints[0]); for (int i = 0; i < cardinalities[0]; i++){ y[i] = 1; } for (int i = cardinalities[0]; i < numPoints[0]; i++){ y[i] = -1; } TPoint pol = PolynomialLearnCV(x, cardinalities[0], cardinalities[1], *maxDegree, *chunkNumber, degree, axis); for (unsigned i = 0; i < pol.size(); i++){ polynomial[i] = pol[i]; } delete[] x; } /* everything implemented in R void PolynomialClassify(double *points, int *numPoints, int *dimension, int *degree, double *ray, int *output){ TMatrix x(numPoints[0]); for (int i = 0; i < numPoints[0]; i++){ x[i] = TPoint(dimension[0]); } for (int i = 0; i < numPoints[0]; i++){ for (int j = 0; j < dimension[0]; j++){ x[i][j] = points[i * dimension[0] + j]; } } TMatrix _x; ExtendWithProducts(x, degree[0], &_x); TPoint direction(_x[0].size()); for (unsigned i = 0; i < _x[0].size(); i++){ direction[i] = ray[i + 1]; } TVariables y; Classify(_x, direction, &y); for (int i = 0; i < numPoints[0]; i++){ output[i] = y[i]; } } */ void ProjectionDepth(double *points, double *objects, int *numObjects, int *dimension, int *cardinalities, int *numClasses, double *directions, double *projections, int *k, int *newDirs, int *seed, double *depths){ setSeed(*seed); TVariables cars(numClasses[0]); int numPoints = 0; for (int i = 0; i < numClasses[0]; i++){ numPoints += cardinalities[i]; cars[i] = cardinalities[i]; } TDMatrix x = asMatrix(points, numPoints, *dimension); TDMatrix z = asMatrix(objects, *numObjects, *dimension); TDMatrix dirs = asMatrix(directions, k[0], *dimension); TDMatrix prjs = asMatrix(projections, k[0], numPoints); TDMatrix _depths = asMatrix(depths, *numObjects, *numClasses); GetDepthsPrj(x, numPoints, *dimension, z, *numObjects, cars, *k, *newDirs, _depths, dirs, prjs); /* for (int i = 0; i < numObjects[0]; i++){ for (int j = 0; j < numClasses[0]; j++){ depths[i * numClasses[0] + j] = _depths[i][j]; } } if (newDirs[0]){ for (int i = 0; i < k[0]*dimension[0]; i++){ directions[i] = dirs[i/dimension[0]][i%dimension[0]]; } for (int i = 0; i < k[0]*numPoints; i++){ projections[i] = prjs[i/numPoints][i%numPoints]; } } */ delete[] x; delete[] z; delete[] dirs; delete[] prjs; delete[] _depths; } void PotentialDepthsCount(double *points, int *numPoints, int *dimension, int *classes, int *cardinalities, double *testpoints, int *numTestPoints, int* kernelType, double *a, int* ignoreself, double *depths){ TMatrix x(numPoints[0]); for (int i = 0; i < numPoints[0]; i++){ TPoint& curPoint = x[i]; curPoint.resize(dimension[0]); for (int j = 0; j < dimension[0]; j++){ curPoint[j] = points[i * dimension[0] + j]; } } TMatrix xt(numTestPoints[0]); for (int i = 0; i < numTestPoints[0]; i++){ TPoint& curPoint = xt[i]; curPoint.resize(dimension[0]); for (int j = 0; j < dimension[0]; j++){ curPoint[j] = testpoints[i * dimension[0] + j]; } } TMatrix d(numTestPoints[0]); for (int i = 0; i < numTestPoints[0]; i++){ d[i].resize(classes[0]); } TVariables car(classes[0]); for (int i = 0; i < classes[0]; i++){ car[i] = cardinalities[i]; } double (*Kernel) (TPoint& x, TPoint& y, double a) = 0; switch (*kernelType){ case 1: Kernel = EDKernel; break; case 2: Kernel = GKernel; break; case 3: Kernel = EKernel; break; case 4: Kernel = TriangleKernel; break; case 5: Kernel = VarGKernel; break; default: throw "Unsupported kernel type"; } PotentialDepths(x, car, xt, d, Kernel, *a, *ignoreself); for (int i = 0; i < numTestPoints[0]; i++){ for (int j = 0; j < classes[0]; j++){ // depths[i * classes[0] + j] = d[i][j]; depths[j * numTestPoints[0] + i] = d[i][j]; } } } #ifdef __cplusplus } #endif ddalpha/src/ProjectionDepth.cpp0000644000176200001440000000621713162771466016266 0ustar liggesusers/* File: ProjectionDepth.cpp Created by: Pavlo Mozharovskyi First published: 17.05.2013 Last revised: 13.11.2015 Computation of the projection depth using random sampling. For a description of the method, see: Zuo, Y.J. and Serfling, R. (2000). General notions of statistical depth function. Annals of Statistics 28, 461-482. */ #include "stdafx.h" static int CompareAsc(OrderRec x, OrderRec y) { return (x.value < y.value); } static int CompareDec(OrderRec x, OrderRec y) { return (x.value > y.value); } static void GetMedMad(TPoint &points, double &median, double &mad){ /* First, determine median */ int n = points.size(); //sort(points.begin(), points.end()); //median = (points[(n + 1)/2 - 1] + points[(n + 2)/2 - 1])/2.; nth_element(points.begin(), points.begin() + n/2, points.end()); median = points[n/2]; /* Obtain median absolute deviation (from median) (MAD) */ TPoint deviations(n); for (int i = 0; i < n; i++){deviations[i] = abs(points[i] - median);} //sort(deviations.begin(), deviations.end()); //median = (deviations[(n + 1)/2 - 1] + deviations[(n + 2)/2 - 1])/2.; nth_element(deviations.begin(), deviations.begin() + n/2, deviations.end()); mad = deviations[n/2]; } void GetPtsPrjDepths(double* projection, int n, double* objectsProjection, int m, TVariables cardinalities, TMatrix *ptsPrjDepths){ /* Collect basic statistics */ int q = cardinalities.size(); for (int i = 0; i < q; i++){ /* Prepare data and obtain median and mad*/ int beginIndex = 0; for (int j = 0; j < q; j++){ if (j >= i){break;} beginIndex += cardinalities[j]; } int endIndex = beginIndex + cardinalities[i]; TPoint curClassProjection(projection + beginIndex, projection + endIndex); double median, mad;GetMedMad(curClassProjection, median, mad); /* Calculate i-class projectional univariate depths */ for (int j = 0; j < m; j++){ (*ptsPrjDepths)[i][j] = (objectsProjection[j] - median)/mad; } } } int GetDepthsPrj(TDMatrix points, int n, int d, TDMatrix objects, int m, TVariables cardinalities, int k, bool newDirs, TDMatrix depths, TDMatrix directions, TDMatrix projections){ /* 1. Collecting basic statistics */ int q = cardinalities.size(); TDMatrix objectsProjections = newM(k,m); if (newDirs){ GetDirections(directions, k, d); GetProjections(points, n, d, directions, k, projections); } GetProjections(objects, m, d, directions, k, objectsProjections); /* 2. Calculate projection depths */ vector > > prjDepths(k, vector >(q, vector (m))); for (int i = 0; i < k; i++){ GetPtsPrjDepths(projections[i], n, objectsProjections[i], m, cardinalities, &prjDepths[i]); } /* 3. Merge depths */ for (int i = 0; i < m; i++){ for (int j = 0; j < q; j++){ depths[i][j] = DBL_MIN; } } for (int i = 0; i < k; i++){ for (int j = 0; j < q; j++){ for (int l = 0; l < m; l++){ if (prjDepths[i][j][l] > depths[l][j]){ depths[l][j] = prjDepths[i][j][l]; } } } } for (int i = 0; i < m; i++){ for (int j = 0; j < q; j++){ depths[i][j] = 1/(1 + depths[i][j]); } } deleteM(objectsProjections); return 0; } ddalpha/NAMESPACE0000644000176200001440000000400513162365543013075 0ustar liggesusersexport(ddalpha.train, ddalpha.classify, ddalpha.test, ddalpha.getErrorRateCV, ddalpha.getErrorRatePart, ddalphaf.train, ddalphaf.classify, ddalphaf.test, ddalphaf.getErrorRateCV, ddalphaf.getErrorRatePart, compclassf.train, compclassf.classify, depth., depth.space., depth.zonoid, depth.halfspace, depth.Mahalanobis, depth.projection, depth.spatial, depth.simplicial, depth.simplicialVolume, depth.potential, depth.space.zonoid, depth.space.halfspace, depth.space.Mahalanobis, depth.space.projection, depth.space.spatial, depth.space.simplicial, depth.space.simplicialVolume, depth.space.potential, is.in.convex, dknn.train, dknn.classify, dknn.classify.trained, resetPar, depth.graph, draw.ddplot, depth.contours, depth.contours.ddalpha, getdata, dataf.geneexp, dataf.growth, dataf.medflies, dataf.tecator, dataf.sim.1.CFF07, dataf.sim.2.CFF07, plot.functional, lines.functional, points.functional) export(FKS, shape.fd.analysis, shape.fd.outliers, depthf., depthf.BD, depthf.ABD, depthf.fd1, depthf.fd2, depthf.HR, depthf.hM, depthf.hM2, depthf.RP1, depthf.RP2, derivatives.est, L2metric, Cmetric, depth.sample, infimalRank, dataf.population, dataf.population2010, dataf2rawfd, rawfd2dataf ) useDynLib(ddalpha, .registration = TRUE) S3method(predict, ddalpha) S3method(predict, ddalphaf) S3method(predict, compclassf) S3method(plot, ddalpha) S3method(plot, ddalphaf) S3method(plot, functional) S3method(lines, functional) S3method(points, functional) S3method(print, ddalpha) S3method(print, ddalphaf) S3method(summary, ddalpha) S3method(summary, ddalphaf) S3method(print, ddalpha.pattern) S3method(print, ddalpha.alpha) S3method(print, ddalpha.polynomial) S3method(print, ddalpha.knnlm) S3method(print, ddalpha.maxD) import(stats) import(utils) import(graphics) import(grDevices) import(MASS) import(class) import(robustbase) import(Rcpp) import(sfsmisc)ddalpha/data/0000755000176200001440000000000013162771467012576 5ustar liggesusersddalpha/data/crab_BvsO.txt.gz0000644000176200001440000000334213162771466015617 0ustar liggesusers‹U˜M’%' „÷ã!ÄßÖãðjVÞøþ7±2SP5›Žz$ !Їè~—ÿ+¿~—_ÿ•¿þ.¿>ë§–ñ3KñQw‰¯h[e¢ ¢}ùË£}ÿX|-t3‹ö‰Ö_£w‹?+ú¡}•…Ö­ÙV1ÙÆo?½ K4Ö³1C‹ß6ù+…Ÿ1«Gg[pâKOB‰yB Å0¿æ¢StïPvX¯p!$ƒ _™h¥aòø¹%E §„?dÇØ #&„ùh‡Æ ÒzM–߆°åtöc…s2-F ¬1&KoaChcL:!8X}ŽÑB›¦®X~LÇžöà ]ÝÜŠ ;|3EαԪÈìÒl5I]N4¸{KË£cm¢ÙoóFshˆOƒ¾á ým7õ%LEÓ÷gŒ¥ŽóXŒ3*#þÅ(Æ3Çpu±C[Â(òøS—ÎCárÆsh±K _ð8L`öÁÇ^8)ò§´OtàH\vÓb|Aº£–öØ%ß‚ÔxI ›cÔ†„|0¦·ÁêX“}C@|hØ1Ï$ ]h."{8²UÌt©¤ÞÓnèoèo·½Ÿöqx¹ÅKò`m‰_ƒ°6/KG~Ëhƒ09ž‚“{†ãj#ÚÅ,F mp<÷]hUsçD&j1‡ci8…û`–ì¢M„N&™%Zýæ!¬Î ¹Y¿f2Îų÷˜D¡ p±>$Å×¼V¶È.|Ã’åW½´Æ6²¥/v¡\å%£Ž”£HùªÙÿ¦ø·<@6]λd½è[ÕÉuÍäDâÜÞÓÙéI)ñÇk®™®š)‰ä ˜D;®3¥ÃþW<“íÎ3á‹h¶û“ÒA %’â ¼éö#J@lvÝI ñÓ Cí,½“èÔó™š÷@佺 ëië¦ä‡8Ví5§ º}DÜ”ÎjV"î™Ýö]Ñ~n-Hè&7¶Üh÷bk2³ ’”?¹çåÔ5†pÄÒŽT5Ź6‚ÁÎûÚÈJŒÑ90w™Àe|ÈßZtË@"<'¤‘0Ÿb¢Aè Ù)&Ö„ÖÐ}ÅüöaIö=4Ûj+ÀM¤N'i÷alµDš.Â>&¼Ä–ðZÔ‹s¨ÙT¬|ù]L´DÚ’ò€4=|‡n¿‡;·ThêÅȼiY ¼1î%nÈéªsu$ÏŒîçB¾]Ò÷ç±Aa]aèà<Œ4>Îy<Îz EÖ<ƇúYÞœ®j ±êð“æUÌiØ}½F]žç†§·m뀾%?^GOóT¨TsÜÉ×-Ì$JœÕË©_ÌD-iÑ^É· cî_ѯ^Â`Ú|‡¾5U¾µXbPêò0"⦊á`‡+K¿0ÁeK×–¯k>Çd¹Àj;؂b$ñÆÿDŒú^&³#ºUêÐ:"iiË*Ó»õ.¿YOùЋRÓtþbêÁ¯ð6O©¥Êi <¬×Ž jî¢m™ ÓÛ.8äóö’òþÐzòIÙŰV¸IÎ/¾Â[ ‹ŽÓdK.×ó e˜aÇ"ï»oê-;&·q'ÀÊ,U#÷XÐÑH7½%q¨þ€üÕddalpha/data/wine_1vs3.txt.gz0000644000176200001440000000504713162771467015602 0ustar liggesusers‹UY[’l7ûž¬â¬ Ëøíïlbö¿’ NOR5}ûq0„_{~~ûó;žßùó<¿ë‰ÿùÝñÏùù½ñµŸ_3¼éñf<ÿþcóÓÇcŸmOÿÌx·>þXßñé<ãÓüiŸ~âS¿Oü4ãÑ6ã‡Ûk¾ûÇÆ§cþâ ;3›‰ƒøMG=oZæ° ƒ­wQÝðþµŸÄ* ˜£|£Ë¼;Kéë+°,·oXuÂ'  ]¨N®ýÀÚ¸±x¬Wõ¹èȦ!øs3sB/KCôÁš‘=6zºþ£†Ås±;ü;óïTèO›½•?Uy¼C󠸀¯Oy™ãÎôèÜŠÛ‡"‹QsÁŽ… KÔLØ5`ü>Fe ‚ÅŽ—ø®·l:cÓÂ,K¶ÕÒ߬0‹_ËÜÞ¢Á»u]YCZvTÅUv\”-*0œÜøEÉØi«ƒÍ¥T4/÷>™åXÖ«çX2Ðì{䙸À{PÌ)À5„åXµÃì+ž¬Š.PqöÊïƒ!·\³õ‡Èa]u‡/MMzAx«ø*ºxï›ik$=ó—ïÜT¡Æ&|à&²gèRl£ÆScw”=±.ôïût%2ÃTše³®‚ ¶dš¡Ïä{&Ž1Û‡L™?ÕêìMr8Úˆ@¶˜JGìs Vâ—™8ÌGnžL·6±y{îxA;‹+ÃÙ$Ws!†Ýô?,›ý\xg½n%n ¸›DÙá,P[DÅèˆs»œB[¨íÀzÓ(‰¾WéºÐ|­PƒŒ8"™‚©ã /Ͱî»&e@¼*7ØøäôðÉY"ÄþVuºHiÃ'å|e]„š‰3²>§™6ß5…º«ßWÕÓóŒ\„ÁQ6{ ºÙÕó‘§ùv]äørÉ£CŒs±ƒÑ+}Å[JÿKv±á^»_„}¶ ¸tÙ±FñìšÆ©É³µ*û<…Zô=QfìwD¹º ŸÉ(Þ^#þÔ|ÃÖì€n‰»Ê{e/TÍ)¾áØd©1¸Ž&Ü\ï„Aô“Ñ/u ¯a”É~gíMÞe糚n ñ,~*à•¤ËŽ6¸7¥æ `§Ñ-y’ë>Rº=CCJâAÏmk4νw¼8Úµåä ¹ô&߉ÎI{À9­¶ï/aM ¿³kë/îkw¥±,q¯æZ^\½x?Gßkß©9S‡GaJ™'§…£x  Jÿ_éH9ÐFlùÈ\IÛXi)‹t1ŸÒ•ÑäSj/*Ûh­ÈÊWNXª*êÔCÁ‡Ÿïts9f8ÝKÀ0od®©–%hçm}‹owÏÄYÉJJÙøŒÏBÁÝ .ÿð†‘"üú”‘$L¢ß†jÄ-™"Í¿só2…=ì“Q·´Õöfâ<¦ÁXE’¼¸fÒx)¾ÒØ&2ôzؽÞcMÆw[ £ ä‚êaÝ!¸(«¢±#¹Å©çš&ôÑ™:}Gv¯À‘ŽeIÉ ºÈÔ"é}‰˜)l¡I'Ë-‚„$€¤à°`ÜóÔÖÏÉtjˆ¨Õ©ZÍêˆÙ™Jš§Fã“ñˆ³p½nšß5(ÖW¡„£‡Ý‘01žYéýžôƒ*Z ä(Ìj[I{Qg°<ë¢Ëf‚5h㌌˜ä(…¨Œd5ñµGc¬~8›”n ²i Î`†©ÓN9pxÔSMS˜=8èòãšR‚Þ3ìÑŸ¼ãi)t‡¨£ñÒ©9àn†ÌÞr×ýÛÔÆ³5Ðø½àÁ­‰°µUöœ÷TÙ å¥LÖ.ÝNï„,;ïYE ›ãgçæ{Œr˜Z§SjC¨þø!2 kf9Â0×;CèóÕÍË“Ü2÷•»>x*—€9®&Òõ<…zד–vÖn%ÉA|‘‰‡¢ÏÎ^ÊÄÖÖšÀgÅQÈQ¥Ñh9¹ýu¾p­tr±ð®È§CjQËý:3ñ^Ìý,Ztì,j™KÓT¤¶Õ¢÷e㡊oÂß·&õ‘ñ ¨Ü6 Q÷‰iï j”Ûà÷Ü3Ãb½á¶+ì®kуd0…MÚGçzqñ@ê”wÈ似ЭͷS\càK,W Hc Q+›ÒE¥N6‚^¡bp‘±¿d¼$ìXõÞsôÑ“çßÅMœN‰±°‹‹óZ–¤&n¢=l'I\P*qËÓl¤ ‘6t½u‰¬4)ˆ–×<†:–÷Ê­æPÔnŠÑ±û^s¨'`— pͦÞßÌ-[ânPhŠ ˜õ™7q–Áð 'úŽßÓ%])ÔÞ)È6áôæÖÙeó$u­Ÿ ùÖKT°óò‚Š–´|(uóx}´ EO4K1Ô䔣îê5n9w±¥ó{ìëU[½ZíjŠR¥ñò}Jo,Ùºð„«[Ñ7]'¤[Ü΢óæZIµž‹ÿÞVŠíì6Ë{nqdì)ÓÄÍ”¬ºšÌ}nçMŸÀ8ïŽhîV¥o`Èêä =ßÔ ÍYø9¤C•Þx +Øk+í}ëÈ,Øé–÷¢í½=&ˆQøš aÆz 2ÿÇÀSöþ¢~%ð.½»ÆÚ™•¶ñ蔸§@C!ÕVÅ•"üÒ9Ù¶”îw+¥yoddalpha/data/chemdiab_1vs2.txt.gz0000644000176200001440000000200513162771466016361 0ustar liggesusers‹UUÛ#0üß*¨`eÀøñ}M¤ÿJnpt'­´ á10þ¨|Ì僿)Ÿ??ã÷^¹Gæ>¢¡¢f¢?ú;L¬~ÅÆ›3­zEÇi4Ãù–¾¹L,ve¹Š Kt"÷*«ÊE¼º8RÚåz™¦-1ü¢{¿b'` $pÔ«ZcÉ]2Wˆ9ü(ØDäLj#›Õ^(>¶Ä@=€æå åÑ¥e¤7 ¯+ Q¶Û o œð.Ì6ºiU“Xˆwt½×kEÑyØF*zWD*€@^Àf«›qÁøçBæƒÌ^§ŒÔøÉøJô@U1<ŽÇ& >ðåðܶïð1¥Xè<ÞðM1Ô·Qˆµ– ô>F!^Y-€ÖAöb–Cr´fÖ]øI d×·ëm!Ž›V‰gfà76ÚjXcª8JXªeü‚Z‘R1c¨ ÀàÕ2òDHö’8²>I®r2Toì4Ö—(`AX™µ›>Þ4á?iö*xTÁ‹ÁÃßJr8”¯˜(bUô;…¹}1ŸIÙg‚{SM°¦‰¸(C*ñHƒA; æ`V—ÒDèÑ‘ß̪Ü璜Ѿ—°|€q³3íI¬äÈôä~zx挮ï!:¥˜ÕM-Á»ÈÊ´´žê KbÀv;~&~LšgcUu€àøè2J®ö.sÂÞøÐð{<[Ûetö™àÁ1do­„O„ÆøRBH'Îý…DY£Ï=Q.Ê>´Œ»(ª#ÕŸÊtn?†ºgW~ròc'÷ËrÑ*J\qÊÕ›<¤ä~Ì‘äsLò÷³ðwß±úýhéLß)…~•_E'fØÓø~\ ë÷ó¤±J¿+Ó†ãÚèûoð–šZ_‡ýÖ¹Yˆñë³#òúhtNÖ1ùN7<6k1¯}[ˆÆB¬ÎÄG÷ù=ëKÜù¥¹%’Ëëü~íôyÛ×ââǰ!muÒòï·•~[_=˜y²ß|>k¤¾èÛ‹úNû\RýŽ–àôAäŸO¡òÎi"„L³ºì¡y‘ÝψD Ñ»”¾c³v‘Nùâäß%Üú‚–ýÄâ}$æ­À»8_-$o£îTþ.  sDNŒ–v“Å×Ççûy!~àFOnÐ*Ó`â§Ñþ¥0TÐJ;höX˜ÊÄüI¹¨åé÷y;C<É3­»Ä|Ñy!{𯹈,‚ Rh¼˜»¦5Æo¦™×³u_Ä)LÙ=œÆc'©UAð5ÏpÐHaDÊ¡ÐoâwºMd«Ìô±F‚ƒ› ³ è£gñE¬¤ Ç|àg+_ÒV“úß‹'0ãk<:ôúyÐçj Y ¯,Gw‡«Ì(|ÓrvjlóY˜¬ìBºÁKtQ<7¹€—1˜…36纜ބ?f.ȼ'Œ¬¸y&3½ªšñg˜w/·3²®-ä)Iðd3»Àü2Ǧõb묄W¸ý’Ø e i$T"èñÜDµ8nàÃP@*tŠ´ø3¢@þ!O•™µœ>,†þGC[…y7Zc4gr"3Ù»@ •0Ïâ-~úGzDoŠ(|úɃ ®Ø„´BãDÙ-u€N^]|E!, Á4°Ê¾<©fµï<ç€ ˜vÎZ‰*LÁéæéàn$©*^ð*Y½ë†Æ’¯|R›L¿&…¹ÆaŸry'†±ÍåYþoXÍCMƒ•‚ÜÎdçôNZrímÉ? &ïÖ LØ‘®îêà"Ch ‚‘$•[ò3çªÞVÍ> ´¦m~?o¿k¾¡¼üX»æ®l—’LÒ×¢Þw…ϯËέdžì2È }…`,AÿÅ!N’„fÒ§D厌Ô,d¨_ì˜d γ´ NŠ•×áù&îk´Ÿ!ÚÐAìp¤CjY‘N/‹_ž±s÷Á6rnü­ígæÞȰ@K_ˆ¤>¼7¦´Jm‡´c»v%SGƒΑº(”|ÃÐbÃðÖB‰A˜ðºK‰ ´dz¿ƒ.MT/5 . (æ‹k­êsÆžÒ3?¬¬B!ð–NÖ§ôÛÁhhËBÔT¸¥ªtY¿ˆ*ª²"µF0‰Ä<ÔÉœ$”¬À­[˜D³”ù¯/RV,u!ˆ‘Ý‘Ñlæ½¹S`fÜÔÛ|(!=ãæN÷cÎ,ÀtT&Ì—àÓWä©_ê’ÿgí Ì!’lHµ"[T4vÎçy5ÜHä9r;Lœd9yìkrodŠ… ú´2йì“òËmÔ¤R%Q¢îùP3…3÷Y¬G Äz£ô$8sÇévg—Z ÓIU¨GZ%E›J±é—ð]á¸ïhdEC‹©7U¡ìy:HV¾õ¼:ç™R„o-¹$Ëbø(ÞÏ'¨›%žíÙ¨ –&•‹ã¬Âü\ü‹ éNŽ/åTp=—‹²vÂ" c×7ÙT몷 ŠÖ¿¹³ˆ| ²Iu®H¶Îʪê¥\@¥øùb ÖY¦&I š ù£®³¸,Ý£/;‹DE Þ<¹Ò‹‘ZÄÝÛ !Nþù:ÿ£h¼‡œà¤„EÒØUø>©º'­ÏîîÉŠk)äØ?Ź“¯”  èÖ¤Ãz}ôsçåViʘ‘Ødßµ² êLS½8‡öçv¾(Ó֚Р=бA0 0+tH;ï@—Q±×™,ÌEÒnÒP‘ SZjÜln˜šJ‹œÍÛ4Gã‡~ßQ1žêš´µ-áŠ5 4¸²# ™ç†š ¹˜-T_‰ú”‹p¤æ˜Éù€‡š¹\(Æë7RÚ€0n{Î9L¤ÞÃíX¥}L“B*ЍŒ˜Æ\w1{DDJnÞ° 6š\\,w2ÝôyÅ´¦®&³–£ój_çi€Ö‰ RÅg—Θ«ï=lô¤ã†+lf’89Î)+Y¨à*Ydõ⤃¤Õ[%vi#Çß#=ÐöHЭ;Z¡™Å¾Ý2ê=D4ºT’­–ʆÈDz’™pŒ_uY‘%Ä %»É¢]ËİR¥õTà§_Y½¤ÜŸ›a›Ùxã„^‹d|ø0ÏnslÑnÙ0?¢=Ó*t5Ij–€=É„Äé-{&©ª`–ÖHØÉ%Ì®¾kŒôým£ÕðÎîÐ3¼-MÎË<¿6j—Yò9gë¼'?Í;–ý4ÕwJ&›K±—×38³Ò85œf>ä›Ä#ÄJMq¦Bz$Cc×êœã0§’vj+À°z¨©Âsu× qóÖ'½ Ñ„m}Œ§TíW ÂÄÓʉ?Ãæ Ý Ä{Jg.¨<¨$¼@š;~ãîÝÆh^N†ÿþem„VW3p“¡%8D,µ´¦ÉÍëÁ—¨V´vq]M&ž(åHõäU6y^vÜÐÿ/ðåÓ·¢3ÜMÇÔî8äʆ¼©=ö¨½©õ³ºMdHl }™>¤ŸÅ7SA9MSGqcÞºŠ8ŠÙâü<ˆÓéâq>CH)ÞaÝGdz4ÒZ\cךÐðà]—/h$ƒª¢âº[q2ƒÕwÙZnÅ hh¯nPR:^ŠI)#sukQ~㫃PÄÎä1‚1eæ£EÊé’×Á›+ÜvWäŽë=ˆ×ØêÚL‚6Þݼ˜™_z½[Â*ìx¿¬H·¾âñ­`[]^>`löJ®k_Õ×6ï.Žø™ÑE¢ôGÁ(䂵#é,ZCtÍÆjXe[ÜŒš758¾-§ã!“°ÄÓ'(¬"=ÒüL/R]~‹îyökóv¿§¼¯L®†Ç¦[±& 4/\ó§‚ÿ‹ŸüíéfQwnèÄã CæJ·L Œs»"qž•u¢J;N–iâ}L@ï-ð QߟTU»üªùe÷‘²¹µ¯õ<óEAg–“å§œðp‡DDÇ ‡c}’;ÑQò÷Ë2îÐY/üWØÝ‘Í<-S³SÛyv@ŒeŒ1¾¸Ó*IÝÏæðÜBBùŒ)߉»ÊÛ¨b‚¨ò¢yñMLï[OÂÙ)y‹y»ï½Xhîr~Ê›}Ú}G“õpÛ#];öú®Ðq—¯/6+ÚEÈüOt4Ìñü‹]äûHk'ë­`d ¿.Èÿu,28ÓÙ鸶w¿_ÚØÎîªÉ'ÏGp8Æ\œé³æ¢Â㓉÷Q¸ÛVnj1ɸºå}ÚI¬Ðšßôžm ì1@ï½_MGÈh.´®c牟ònÜò“¨a¢½€¯9þ° Ä›´ÍíáÊB"=Î9æì>ÛÊ5ÍȲ»L$R²¶6y»º& >«hþ¥£ãÅêÀˆõ>í‡Ö·)xŒ¹-á¹wšý0èâò¯*åÌ™ø~IþiRü’.â cÒe hÙû3gÎ%äaÊÞ?#½£âÀó»CT\$©®å·#< R5ûÕÊ{b0b¼6xÐ2ÛMöØ~ʽþáTöøDNðÌö³[ŠÆøÏkø¯Ÿø:‚_ù0k{T¿Êì6ÜÕ+«áFc¾òlT–,ñïöO $°v”Å%¯ÿÛ£·ÂöF¨8ÙGm;ÈÿyʳpnãæDšŠö{ò¦Î?g׬OÖ×zúHãIø×±EÅñkíøasM 3(ì×É3ZlÏX˜ö”/д<ÅÛ{$Q28’¾g‚þN õ µ8ddalpha/data/iris_setosavsversicolor.txt.gz0000644000176200001440000000076513162771466020772 0ustar liggesusers‹}TQv!ûßSx‚y«€:ß½ÄÞÿ$Eˆ öµýÙC‚û©åÓʇʇË×K®Zè’R/.ï«•úâë.tœ‡"ô뢨t­T­*¢çžzD¿Hyªö¾õ{÷00„N¬§f=‡’¸§ï8º&xz®€¥Ú™ì\ƒc–…o¡u%|¨§¨d—]¤L>!f‚‡‚‡ié.÷E½;„9&¼·Ó¼’æw­ Z#«ð¯™®™×ýÈðô¥©Sg¢•öf¸éñ[ þìYyPB¸+y[2Y‡èöÐQá{»{Ö„ýHìŽ4žÝ93}|ê`}v~ì¤ Áp¯Ù0ºã¯eŒ”VÅ`ÛºUÌæ!ÖY7×Þ™#*²›ý¦®•Å×ì6ÕcˆnoÌYÈXšVö}©Sn÷É~]ÿž°éTl[šŒ«‚kÏ%`§`ïÆ\ñ¾6†Òäë56{¬ÍïHˆÅ*Pª ³’™¡e&·Èz?ajRpý]®#§‰ž§ˆ½Nwã>”®DzrOàþ å»2€˜ÉýÎQ/±ù+Ì›bÇÙá“’oÎÅ‘±ÏUã,îÎqîèhp‹°%:{Ù¿ûnî­ò„ö„àÄÞ›ÎÜ á9g÷ÅüWçýÞº¿mlMãºddalpha/data/crabB_MvsF.txt.gz0000644000176200001440000000164513162771466015727 0ustar liggesusers‹UV;²#9 Ë} Àe‘Ô/·µÑD›Ìýo²Àn÷$®ÁHIÿýÝþûÓ~~·Ÿ?í×?íçµß½Í÷j}æG?-¿Ò¶Û‚  }¸Š´Ÿ·å׆›YZè“Ö™_Žéíù³ÓöÝ6¬žÖ²u$;XÛ|—4öŒ9È๶ÅU3?3k¤³møI"™'ÑD !X­ H§t@NVï ÂG%¼9’çòJRÀȅ걬À:,n€ö#Y}ÆVéœo:W2 -#&zÌdÅæ  c‚à„á ûŠQ£®Ôíg:zÚ› Cn´2á7Óä­vMæ4Ÿ¨å‚†H8è^€€öHÌÌq›̉a> Løòu¼boÙŠ#f<€Õ¸Év·àfâ<:¢ïY~câÅÃÌ6q¤œ@Ü6È#Ý3YæjrŠ'hµè*Æ«ÊÈŒñQ#³°³›:0‘l€VoÁ¹Ü1»( ¢¢nèh´Ž&œÂñ©ù‡è`iš¹c¬H,籘WTM>ùeçY1ì.wè˜MŒ_}ë<8UpžSÍn5¾Á8›ÍK¼} Ø‹ Šü mÍ3& \Ûv5еµÇ)Å‘HÍı¢ ÜãµàaX=Ù'̇…y•0/Íë4ÖEÃd1¬´RÙ:²¦ºtªÞ×nð7øÛm—}^z¹iO]”^$Õ`ï Ÿ8¶hP<ÞŽŠ:€¥øÅ30WŒp[¸6κ¤UæÁDF3¥ö ÷“^!;µ‹5)&$iRf­!a¾u¶¤›H `•Æ…ôìSRhºxI^ &¾Ö]唲 ¾¡eñ"+ª5vÀ°‘^\LÐnäÀ÷ÅÙp¯*ºŒ¢Ê÷Êþ„–ôïHðò¢\oÉ–vZi6pëÜD¢ ²g:»=_RN¤á3禧f ¢ò,E»¨óJgýôŒµí¥óLñÅ4ý^º$†•‚ºŽ|äœBe½I2—ÔýjÝçuѿШwd)ïøÖ€D 0]]G?¾¯+IÈo+¤‹¢ ×GŠ[ÐÕ ÆJ‰û&¤Û¹;:zµ.n¢qD£®Š*ÍIB? yÔã4CqDkÔ•ÂêÙ†:õl¨bœÎ%æd·$¸œõ·7¾2„(ž Ð,1g³¼SÕÔïÔº×ÿHù^’ ddalpha/data/baby.txt.gz0000644000176200001440000000265513162771466014702 0ustar liggesusers‹eXIŽ]! ÜÿSp‚ˆÁ`Xç}ÿ“—ü;j)RÜ<㡪lú§•Ÿ^~Fù¡ò3ËßO³–Ñ .ü§ÏÒ>|ÿí\fY×2V©ŸVOU“¢.¦Q¯‰Ê¹?÷‹©_Óh÷ÔÓ¼¦)ßõ¯C³â>5õsïkcÝSÇLD×´Ô¹üÜCøŽÚý®^ƒ9¿q, –{H<±%‡M„¾ÊÖЯ©/|h N„NøPO ‡êþ+PMÐÒ éÔÂð…ïY b馊6ÊgÝ×´-R”]+z®e@X­Y¤øÁW-ÍŒ ·¶f³Ñ› OKCÀ¡nבæ')øî¯|›oãWiEò‘ uýèþâs6(S[ˆ‡p×xwµ:Q¦!Uù³ÇuŇÚõu \¯ \/ z™£†3´Ò™¡¥”SÓbꈀԓf{»b‘‰£› ¥ÀA·NIÁ>ìš +P…q¬˜À>ðî…Ö4j89€7(£ºÁ´S¤Rª£b­°‚³_œ@u½!=‹§›MòÔQ=ƒ&ÚÐÉœ³C“ê|©¨ïVºúnå~Ðìvjj¥ÓÛtÅo×*‚Âì‚íÃivÈp_š‚: Zø«{@ŠVµeèDLÀ= sNA=Ú ž k{‚Ð^U“+¥ Us w¯]?øÊ°è®¯@P_Ù’(Çý?špyôY äÚ`$·ÌG{bgžøËKÒ­‡aa=£b4¢u\¹ÈÌ×_#äVú{†¹bÇåúÒ"iÜYIÃ'+Év†×ÖûQìª]â§¢\QY‹H1±’ «® ëFw*©kf[)© V}L,õn¬ÍBPïôK lâ¼ %ÁC ôVàmj!ëpêlƒðø¬¢ió¥9[B4, ÇcÐ {MÍ"è1/Ë=&€D ÅíÎôá$v{e—æB×g–Dí%<Š9uÐ@5“PÓ«w”ÝR¸lëƒkykÛ0Í^Î93¤¡S»®âرöÓ•Å=ÑE>É–¼*}—¨·(.—® âTì4ç¬ä´ù&žæ²é25€ª¹.5HÃjiœÜ,ìgæë›'2º'"`ZÇ¡€m6L•Ӫġ -©m/7ൽp¬R€Y.;•e²};k.ENݲ†îAû-=€Ûýnëä‡îï(E9\ûMŒ}Yr¾R¬.2b}ÚJ‹šv%ì.ADtŽÖ,ã[é0%Ç×’eÕ}jXènÁÜÜιåyvÎ¥ù0X– ˆ²»)Ö“§ª‹fÓCp½­å€…í<Ã9Hâ9ðœo–$`s$F±ºE<€Ié® QXÖÊà›âÝ5œ¾¶7vTò²Y Åžºgϼ'õ$ ë=Í!³#íËCg=|5²E0ˆÉ>×›JUòÝ¢ª aáI£Mn:}´ _ûV¼BÖ÷´«œVC˜œšÊDeTF(Ë¢Ë#™'ËÉ#U¨Û²Y:¥ä¾n3ã–> u3ô§b7Ó]w¤Ý…¢Íû=$Z<$¶Ïü‘Æ<7Vý6eõÎ!ô#-Åim‡öbPÇ» Æ>³§t-C˜ñ²¡¨zCA_û„Èãrˆ óðé:ØvB'0Ì*ìã‘9s”1}¨Ø"ê>zÓgëd5eêZO´FS6'Z©­ÔJ,«¬cŒž#´o˜oSe\mÔ‘ÿЂé‚Á_uœY©ŽÊÖ> 6ÛÛ6 ™i®³{‰–]ÿ{r§—Hp•ÒþÃiáj.ýXÞüõŽ}Äð^Õuœ!t11Fµ]áÊÕ>5㟂ý`¤bZ¿püÇO,WÕOãC©]õÓâ)Ò€Éq`r˜œ€é}|(ö1‹_v 0*°ƒ·ifXŸ\ÇÛTOLRb*0 ̰?ß>ì¶O¨&÷ag¼Ÿþ ×ÄÛðɘ;F‹Û‰°ʘø“ÛÀÈi§fú#yÙ ˜ñÂåO:0qKŸ·†XW¼ÍüA~bx±“a'„g~kÚIŽY1¨ÂèÀ¤‚ü¾ *ÀÐ3‹AòüD`í3¢Ž ?ÃnÃw±ULƒÇ[`þŒ7Ää°3Š ˜‚l;Ê:@~¢×Έúãmµ“Q;Qˆñü䗸Ơ“`'îüû‰i‰vàψӨÆMAÿvTPo YMwGL*³PÎ:`Ïuĺ"n£.FNEWŸ¶—·E«]þ”î}ʸ¥]o·Ä@WŸ&Ãä…ÉÞsÒ×Û ý©è9~Ðú4ð“qø^b­çš÷©Ùa~úkÜÆÛnùA¬#û‡vÆw4̨`ô)ìdöi††=£FÓÉUµ0§½y°vø¡É/˜«P®Ÿ$䪴üy³£æO]˜Èz iõöëÛØ ™½€¸%bX1ìí|rk”㕵ÓÊêÓô7³Sò깜GY×Å1²û´ÒŸä±&'j]þä—Y2 F˜ôÜâ^q±Áö«ØÛ™qc4Øawïl;Î×Íø ¯œF›?·—9—ÑÐäŒa'Ï:5êùÉ'Ç÷ñÔ5ñÌOTôv#W‘šÑî£v·š¼X£½¬ùSŽÙ¨*=Çzkh€ÌíjßÞ_Þöÿ`¬®çl´œ*ë ®·Õ·9ÇœVö{;ø,a/”—­Ýû'öÙ ã;Êœ½=üaoWhІ¯¬Œ51ctËÔw/ïÄ5¤{CªÏ¬¸sJ;©ßó#³vò;¿µB˜X¯«®zÛIfj±zëÀþF‡ËŠ;ms¯Ç@7ï0•³„³é“†Ÿë&Æ@1{Ó™¨@°»ÁŽF¤ægmÓi¨|{$]MÁajÅèÌ'ót0Ä·iÉ!5® 1Áí“[d䯷ñƒÎp;C/UZÛŒGÊš@½™oý¸î¬Hõ2È€åm˜™¬ÁýW/*ìf•l%êvXqÑ™'z 4='ƒÞªôgS+“å’Z©[õQYýûRpr›ÂT¤õÈOT%¬É-{ÒIztÐfÅÊüØänΊ¬#A ù¾ß nŒG)Ù _94#0Pù¨Ñ  'ˆ)·³"ÜoSëÛΊ[€ÆB3>š¶Û¾ñPI:»Û¦IŸ9cìQ,ý¦°·L;꟪ùá#À4¯ƒ¥b†‰ÿFÔb½ü!û2n7YÌá¢,LÓÍ"Šæ¾­3ÑW†„`S–SúŽǨ«öÍÕÚÜ é¥VØ©Íu3ZskõÀ™”÷ÇÅ…É&­‚;sÉ\M¾ÖMÔH¹Ó’Š™kSVÔ§\^vÊ–Ëe®¨SÊc² '&l ;S*R–CmÏ’x¾-±RZk ­Â&_Êw£NŒV_éÌ1ôœ2)¤#Œ[×%Õ¤/ò‹-òÓw¥»?KþcÅcR‘þÔ—è^ÏFÒ&Á•ÿޱ±•—´š2vçç-nÌO’µšL¸jqå~ËOÚµrÞuÐëæøŒaè>ÙÛð1Ñ@m^GlN~ç‡9åJÇü̵‰* +ƒÊù6“š–,O¶ÖâE±ý¤fí„…Éë|­5}¯Â»ØsA–„K6].‹¾Øad—åÍÞÆz‹;·–¸ÎôèHfܦTܽ «·K°áH€I¶Òá“)=ÐŽ[kNp‰ýCù¯Åú¾¦Kö)c“Çšû÷)iå´»Œ¥xI}Ÿ*ŽsÍŒA ^vÞ ²âÛ(ÿËY£ŒÛäÔÀsML··üÉÃó“š°BéͳCv»¹JWo;½Œ§“„òržQjü^çÛÄrZ.þYþt]µÃq¼TÜ´3å?DRcoßÖÀê¹×A¬·Ha…”è}Z1¸õì…¦ÄP5G#‡"D_òœêÄhµ>åÉŠ;ó`©¦Ä1‘çnb d{Fƒ"ía*+™Wš†éXi¢ ‹-ëÙ4å‹¢"åf¼•Oœ)Š‚ç»Ðà›P ¥Ïí±ùÁ‘–G(ÚŠ¶‚?•#؆w1£bJIArKGHM‡Á]¹zBójhs˜ÿG´} ¦ž(¸¦È-u_ïJÏõvæ ; Ü$xÍ~~0Ð9XµVîÑ;ƒ¥î;OTé¥ûºÉ?㸢°û²6sû”lÉÖ ä¢ï…ç´Sž/Ìž^m/¸±-fÐsª4Ý‚…gG¥È¦JÜo[˜VŽ"ËÓ‚0 ÕæÿÓÕÛ1ì˜ù6ž¹xðÚ“H»w¹Éó²Vb°Y ´ó¢|ZJ>õk™k€ZVx`M/,l‡\N;bêó8r{›8ÓÙáÆ1sâùáæE)ÔP} H‹Õº Pý¥-¶Ö…k;.¾Kw ªº?eÚ%°Ó[Òû”,,ìîŠÑjÔì”ש¢ÁHf,@Sº€¹§¤OÇê01Åî`aˆ Ù@Âë@D"ß» ôy1æžG˜È»Àþ@Ú3p Hè’õ y £Vn‡M$Âê©Îs‰Ñ¨ô)©¿Û¡™N7ßhw˜´§ÉgŠlâà·Rl¯^zRBv;¶pD»é/qÊk_Öw‘UÛ¾±½cx¶÷öG‚CñE ‘·)~‚ßXo¿…øpµ!n¿×©/CÖB 9Åi©ißýÔ—!»Ü”÷ehbxµàUlJF#o-$Å„YÜímmGL{[˲Ûù Õ—!û}‹˜~+ÓÑBêwfÀ§( ¾<Ø|‚{ê"Ën¹Œ5/7u‹z.jòB¥%øµG¾îÙ¬·æþ¸0k±ûÛ¸H+—;6ÅÜH¿ü”Ä»Øddalpha/data/plasma_retinol_MvsF.txt.gz0000644000176200001440000002061113162771467017722 0ustar liggesusers‹]œ]–d9n¤ßc¾?üùXêII}T:=ÓUÒÑþW2öx=¢ôQQ™qý’ `0Àøíß~½þøÏüÇþöçëÿýׯ?ýþëÏ×ÿýÏÿúã×ëo¿ýþþýׯÕ?þëßÿå×?_¿ýþ·üû?~ýM_~ýñç¯êûùõçoÿçïz쟿þôù‹ÿûûoüçoüÕýî_ÿ󵯫½Z}Ý÷«¾j;û½_3^ëÝ_åU£è¿õŒùÚ§¼Z)¯Sç«}ÅÒO·þÞ±zåÁÒÛ{¾fyëû©(¯à?mÍþ“O¯h¡Gõ"½²¼K-þ®GÓ;vë#}i3Þçµz«¯µÊ«·­§õ×_£ðÌ|×QV{õWãèÅ'ô¥-})úÓµ}ZYõµµÃª5¬\vcÙå}ö,ƒeŸÙô¶í_ïv·¬uí¥}·r^§½âœÏ›õžVûÒ›õuis½Oc§9ø.ÚÑ&:_ökMYøkMÞÛ´ç:mq}Ïê»ý½µMmé5{h1… nY„''ÇÂÍ(,¾Î3õ’ÕßZ¿6³¶Øn«É^Cß³Ù>óŒJ,›ªî‚qdÙ t¾ú Ö1|ÛG6zaÕéWŽiê#^}¼Ï:ú7Œ±øÉîÍN ­V- ÷¯qt„Ú€^¤Ý®<á3ÖÖ<6e+ûíMô`ùQ‡¶¬Uîñ:}¦ë«¯÷èUg§]'tÄ¿`·µY¬¹ÝÐÙœúŠcLÞÔë;z‘ée‹"¿:8~œEc¬Ñôgëƒk™œïk…~†W öžøÅÙøSŸö"GB›¼¾ñH-Ú•–7Käf+nÑë©v‹COÄ|…NE®»ª>ªö½õ©<¬“Õ¹× =-xŒƒïµùÉFâ­z6ðm=Ê_([u yÅ-ãà”6XAYñŒ³1.>Q‹oŠ_Å ¡6 T}ù N·)Üf[„Q‚Óåµz½l9ø€>¢¼†LÔXB[^7©c©›xÖ†Wcݱ1VÅÐò æ÷j¯§:§2ò¼ê}Öât 2ÀkðüÑÒÉ~rhǵvJëùšöªñsoÛkØuk‹DŽcƒ7ù¤žNä.ùÆké§ëWwô¶·PD+›äƒÀ‚߬€ÀÃV±ÇhÙëp‡ˆ$’0‘^]v­é[«ag,^½Ùä\«,Ç‘ìù —¶Ü r²´@—n±¤”C¾1uOÑ#zµ¾Ñ1‚8‹hïËéz·ƒêTu8Þ°£Ðël}à|²ZáÓ´zGpùÿZ)Æ2r’o[¿ðqxžrû¡Xö–Î%ë†ÐÕaØ.ŽáÊqés'à®ñ Pæ8ôIÀón+Œ\6óo y¡ · -féLcë­§~@r 6ή¶²ÞrX¶"±ÎßËÖ‡WÁ²vâ!jz‡âùxom{‰3qßéÐ|+[pº8¥–û5|B šR§]CKÒËN·3Ø¡›"^þ¦'YøÀÖ‰Ë/zÝ\Ç/ hXª>3r¼Kÿtƒ5ŸT9è•tz×±zŃ €KaiüC~æ(&ä>†­4j–`°MC5Fâá7“½9› zv0*&ðµ´N8ƒIioôí„ÕOŽÉ§`§ d° Ç’[I¼ƒ¾†ÃOæ•¡Œï»ŠøÉpbhÞ†–^§GI…`ÈÁªöU*.VC¨Qa çÙô'yO¢O™¨ e'X™Oy£g¤: S‡Ó>ÎA‘±?ØçWæåªsjˬ_íÐáü;±|YJ!![/Ü‘w:q ѪÝSðI˜Or~œÉˆ½ËH:Ú öõ£¢.üNÊTÑòŒÉ‰mÓ¦ÅüZ³Žð¥­ÉdßI”GWaý]YçÂÛ—M¥\˜J8ë¼Ò ´9Ó‡ƒìîȲ¥·Ùî¡é`¥²Â1Ù¨SØÒ¿þîc\\naÌZz›sn¬OZEä.ºâI@jvvÒ-WlŸVU„Ë4óàž3Ú&•KŽ:\˜á0ìÄ̧{;Å9­v:{ú¤ö«??o¤D@IGùšãbV5f ²ì”:HâvbÎÄÉ eÁegVŠñª'/“וÎ,u.¶{¾!# Ȫ’§’·Þȶá+JbÎáŠP³­ÝðHclò:%ð hé É³ƒUƒ9Âf‡Àí8šú(¸dͯ¦;zïb S?øàº~°è|X®8›4¨ƒwáHœÎç:‘Cª%ò÷z(°rFkíÌÌ 5£¨ƒÍ޵Ž>¦5r¶‚Go^c? ‰TÛ‰!½‡A ¾N2ÕiíµãIrb–~Ù$Ž!:dÒ Ä['ÊrõC>lñ2½žøÖ{qià¹BUJæZŠzû^ÍDæ FµYíÍ™úK|ÁÄ!»Ë•ÉfžÎ  ŸÃÔÿ°­õòè–”ßG#”Ph8ŠÄÕ°Žý¨"| ðÊ‚ J8gDýÂ`xB;éÃ)~ÒZÆžfLúŠ·Ïã^§e™”ÖtÙ‹c±; f#+çRÑi½\ìB>¯ÅÌL>©9´Ãm6ï:NL‡ÊŒu“Ô”æ©+¦í‰-PGuíÝ…áM;ûoG$ëÚ‡|‡göÌà‰‘§¬à€ê‚Û«…ŸF ® Düå¥,#]¾›ò2ã×4¯ÓFkçòW–܈„u³óLAuŒæu:k~Þ#'á)<Þ»w rª`€?0åF+\0±Öâ˜gîzÁàeE*8­~îø¸ÑFfñÆ1õ‘%;™™#(”TøOØs´\³êB ,d¥##Á¾ÝGBÊò#¨®ˆˆ0—W¥• 0k» Öê‘9L–\¸@hkr§RÑdÅ lÆdŸ,jèÙ$N0“A#›Îþ•à¹ÜÓ§‹¡/tDÃguLz{7Ý=«‰Hø ÿÌâüÉX\À4*»Úë-ü¡<̰ô¯å,ƒ‰€‚%¶’ ϵ»!»vÞfµîÑB«SR5âò¥R-gj Þ?HÿAéõ‚Ö8ð[Q%‚“'¨·ç“• ½Ò¹E; +BÎ$jIÜMœ¼~ÐTMÉÀ(ϰ¨¼B3¤9…cb¦5«©©j0ïü¦¦0R… …¨/ÄñfrDoºœ¾3Ü=gýäˆ ØAXéqêD9ȤXüŠþWJ-.gT×ZÕ¾MBø} ˆ4¥Ä†8Õü)ö&ÊL*0 ž$x×ÿ+«%Â2 ÅrÝLÕº9\rûY¯›ZKèòQóÙHQŸ2Bt>+0CLé*&æéJöDY!Y‘)™8ªÙÅ:ƒwNJ3ASk%Ì!˱3–µøazXl"è¸ /ŽÔÐÖ( ÚMoõdzk^¹ìçªÇÔ¿Y|è:ýÛl‹<§ëŒ—Ûü”Ù‹JY»<þ0ÓZ’Œ™LÄõÿpÆÉÌÖ¾+Zìχ5·[óåç)䈥\Û"M_éWÉÉå;.wQòÊÂ¥âTÔ: ä3ûJBÜÿ"ßÅñ1¶ù¤µ0åÐPÊNØ_"õ—ñ«&;:$—%™ é©Ñsƒý˜V|ÓØ>’…c$ÛKÞÆ®§œÇ<x$‚ʇ–ËþåÅ.Ä•‘í\+¼­ö ‹®¥aìó|ê+¥È„ÖÚØ³KY‡<³ma—ÿNDËfÂ7ôâÈÇ)Vw¶¥FêÏËüµbä]RÞ4âgÌ Â|®ÂÞdÉ! ø‹p „¦â/ƒ’öå„yë`áE߀|ê¸ËŠÊU6ÃPªBk:o›—3d9ª«'lgâu>Yë²Â{6€“ öK[Ë2Ga˜4)@LxÏkº¼ÕY/ šl¢²ñÐ3/x¬´’6[Rë)ËøÿX9UÏ46R©WFF1í©ÄŽCtøië&,IÆê¸òÙ²È18yyB›'r-C¹C-–ýD{-æáÆíÀ¸_ÓÂ]–ëO:bœ‚&´05ŽT´šR/jÃD#=O­Áñ”™ÚhØ{3~²xî.ž©ä䈜„¼y¶<Þ¯J¾ÜpLÐa[z·,3‹µBU ¢ð$4mÁ•ʾúf7/E!^OvE(<Ë V…³r½®þø±Ü®™Š Šk“–±×¬wvÊÈ ^TÊvÂ÷kEúrôyÖÀþã2_v¦& “9/D¹FdÝn8VΛ·uªviÔ²„½å …c‘½ôÜtÑ>’n‹âl‹%LŠºK"²µ)· éØ8Tq¾)€»“’f43ºi:VšËÀJõ%‡Øh!ˆ%zôÏ>£²Žå¤:¢B¹ñr6.7ìW(gDÓÂg»ìÊOÏ‘"‡åQ÷sjµO6Œi:84 XKÆÿa¡°£Î§¦™·éäÚÇ¢²F¹ :Ç£­\Ö^s¿IЇ9¤ ~Ε•¨DVü Nµ«Ë5D?TRÛµ`e¹áxlÅ‚öæýa é :a:"ŸœñÀ›ò&®ªRSF÷ D7šã|Ôz¡¡Ø)Ë=“Ýõð“îx?9g3ç&é••lýÉ·[o&SÕN?èÚ®î™6>i@÷ÙêÜEÏNb@•B.gÈQ¯/J<ô¼“D2‰”ˆÖÙ=UÜåtº°Â§)XÏŽš e3¬1¦¶¿Qêz~Ûöí¥îµ v”3Hñ”åÀn;mJ™ØÑ¢¬›Ù>¢hqèÃLÏÌÎF uÙ]yg\½­l¸ŸÅÈf²j#Ь<ÑäÝøéï%bT«®)ƺŠK]Tu£—,а–àù„¿œmoÝ‹§¥õº3ív÷&RÛ%Û¥Ëhç*¥‚æVTc:\\ûæ(]á3pãAkÒgÛSi'²ïÄÏ%±nÂ= 9[GUœÕOÏh?¼q¨˜I•n±ÏȺ÷U­gò(PÄV³ê—6^ç#9;Ù2Γ Uô” •øtnëç!œª Gº5É}›‘€eê´¦O‰,”èNApU÷jñ+™Í ÈD½•ÂÓ£ Ž@vw’º /×NUŒV$ÍIÀ!ZÕõ”2÷X­w\hY†)–#áð2JßÖrà6ÏŠvçÐ%Ê ‹X²íYë©à%è/Y KØÀÉ…î´œ–°”΃kœO©ÛÙÒ­DnÙŽY!4Ì”"ÔhQ772J–/¢4)Y)ßnç¶È¬ :VHéÚNC4ÊN±yg9ÃÍ ¹>A“]ŸlÎդͧ^ÒJ­Ùz]Œ›{f̧Ü5¯±/7¡³vÛjÔÆÉ;“Ü~²ÀÚ®óÀ·_ƃÉÏÀüõðÆÈ^¢Ò™åšâ%š#7÷¥FW ¡7›¹yý2ã“/–¹“Ñ—¢?[À%õrý4=N5ܵ™f·‚ÝMú3íPö¦“hH¤ ÔœÌiÕö§ùp~¶«qų&„C胮ƒ˜R¼»±M÷¥¦ `ÖWU¦ñmo`Ϩ9¸:±2­ÕîùÉJmm¥‰¶±Ã±f“©Õ©H»Wñ{™DÃáýôt~´)kļ5¥¥âJŸ¯2wKªéͶEuÅGî;¡z.¯~z¥”øïíw^B¿U™7Ê8™®Ð–ª1âî› „ÖUåš›;žÑj„§J¢ LˆOeÕír˜ŠPD9ÂTw"e¨ðv¼‚ ‡®¥Þ~em„HÞÞ¯55pì«ÝñŒ(Ó}©ƒ|2…ëYO ¸Ý!?éÐWzjìÕx¨½®í¢t;`V‰­=–r®… á„VìÓO}ye8zGJo-eŽBKäxìC¡w—úŒvÈaVÖÅW¦ã+Ã<‡3ÌS§¥á"ëƒûc(1²zFòÛiâ´ÆGoxÛò‰3´0œA“nÞ% ŒGFð+hXéÜŽ–³-åEG‡nº{Ù¢mo¤Us%3šÿÎv)à×»ÿ¥2ù ÓÊi”“™R¥d oÁ­Ù3’Êxp@áCb'zì™—ŽØ«æ0i(ªÙü¾"ÊËï­W‘ÈgûØŠ¼ƒšç‰ $Õñ8ÍpZ($;-eE(›ˆá-¹×rCj˜PÙ~€Þ ¹xÁºËÅ+ÎsK=Ö7Ž»ÖZìËÀ!Œœ@©ݼO!°[Øj³¤šß•ù²pM¬€XáÏ⩯v™Œ0üØT-'² Õú¹<×s]££$¬KJùð £<âj¬Ösj2F×ꮓ•=æÂ´ÑqI Äé½¶¹4…}—òB8r+Em=Ã!û4›^ËÊ~%:N¹’Ö³„3]S1ÉvÚþúÁݲ—ælËÁì•%ÈNé¬òNºàèéá”ýâÿd'n5·¬òxúÈÃY›N+5‘¬díŒ`W)ŸxØÁCÕhõ©ªG÷TŠ¿9J.пÕQ&;êÌy<;ߘ">šòJ€F*ÄJÀlð”+UÖ™=f¤NŸb ø(©ê©öŒÂ¿Ö˜Ó*ZZÍÛ §'e©hxø®£ ¸öÊÁ¿óh•"§ûŒV áÕ¶–JÇá¦^¶»îšc„%DK¤ŠënAÖC"²SzÚ'Žg|ÎÍ>§ˆçLÒÙ/ÛEÊFsFyFJÆ"\àŽÖtrZ\†µlÏËào›êÙÍÊnTGY6`Ѫëñqn̸ƒíymZÿ)@œÛ®×Ìåx­7¼²½Šø:¯D¹ÞË,T!Ù²Lvï•j`÷…Ÿî“žJ+í™ØŸ'…Èòm»Å1X Íöt+–¯’ÒÌ!Ô¤ZùðÆ;×;¬f¹Ï"Þø/ÁçâÔ-EþZÿ0R¹€×?þfT7XJê3 PŽOÔ‚sng›ñšÂ® %0¸"oÄÊrê¿â¬YáPó ¼`fâ;‰B,¨§™ù:· éß# îÂûûÁ¶ÓU‡Ò•põ“EâÎ3eТ3Ôu®–¬`Pá¯,¥‡õ}?æ†ÄÌ¥*”øÁ’ªÃveÚÜ™q­ŒôîR¯·„dX@ª`îÏ‘*˜ÎÄöÌ}̼¬ŠÌ,dJ#$쑨Ú0>§úå2+£é™ûæÆDW¿X»Ö|qýLr)ppàe^ÅÃC Pm7tÄ+0س™ŠOT+JÇùBµwóÚ=«‡ò>ÈX«g §K”ÇJ\=A{Åž6uüPûµ“$Ÿ½|ÀmÜ~}_΂ú¨\•´ÝR êß Þ¼<=Ü6®G9©`2l$¢P>gü“õv—=£ ã#ä/ªÚsÛõëU¼5ÖllÙ9Ä•"xwèoz Nî×?%ùwö“-÷™MµØt}¸6ÈøL5¹–0@:ðéy²ýÕ}RÇêm ›³rØ[¹¢—ÏyŸGœ6tÐIÞÝYQ³4û˹f‰-ºÌ×3;N,zpCë`˜rõÇPm—ˆð侯mw˜ÂÃîóxÈhw–Ò(KÉî»Óƒqb·G×Ëà<Ýk‡¾ …™…Ÿ–²s"ZÇ!Z˜Í³ƒ‡®0ô/Yêzí‘9°ó]×<ÃvÆ —b-Œ2ô³Û,èP¡GEˆ.³fê€"uXh²¹jzwŠL§Fÿ€{Ó{kê\e÷”hë»W,¿sÉÌÔ\˜?š‘p™¡­á>(£1³¼Û—§ÙŠÉ}UŒ§Ãn° y‡E q£ÓíêÛ5Ý­‡ý1ÔØ^–¸Ãòý­x—¨'Ë/4jÎálGžOÚÿ±™­=9oƒþä0Õr¿®ÐþvIÚÀ5™Ü8+kíå\æÆ;c'•Á‡ãṨ©îö5kåBB{¹u2óΕe'/'/¹z’Ø·Ð$Üõ¼IOU8S6²*)ó½ãi§Ö¿Ž@5ÂeçHṺ€' ¼ól÷ç·úòcè‚Tà9Âx6ZùœM§Ö¢ry´ ú“€’’W|Û^küœë1Vˆ>ž¬ß?ØO|†‘Rùè):ži¦žW¸M‰A·8úu¨¢-d¿½ô;QôL8î’-U4·íÄ»=ÌœSyÏ(k ìÀ)B§hÚôW<“H©”=%£´pr¸Á!AþD&1•§ãó©Ì¹Î5s(èºX ÃÄFôO>h–7Î3ML©¶Æ“¬uö{’àÜïÃ5câÛ¤†(Šbâ|&˜Ò‚JdO>]z1-e2²kÅ€–Þq;.ýÈ»¥çPß*<Ú¬w`¬ºPh*“Åšиõ[wV}õœE¦ûlý4üÒ‚é¸^4­j« ¼ªv¿ »gf»5±s°&çA{^»ºc¶.ƘkŠÌb¾ž÷|\Œ‡dä¨érk³wËø°}7Fcü|¯çx$úvµ°S0ã¶+Fp_–A¢ßÔ+Û²ÝmÐ᱄våSª+ù1þ1–Gtî FVí‘ö6|»”:dŽ­Î~x.n¹${V¬O•Ÿäe8øWOÖá’(^§ä­¤;|qê%ôvlHaEÅö˜õR %’"·%Ì~û_•%§>ÆBÃÒɺMëuŒ;7‡G[Ÿ1f9’ ±2XðPó&"…:b«§ÖÀæ,à²Ð]-wd2ÇËKÒ¸ÛJE±jÌ1-Ò-zº‹äqýé,ü«ûê[^>Â…òŽÙN›ÀæºÆiW¿|˜}æÛî6Ôb¾³â¾KR3}CïÛ·rnA¸º·G‰s8,Ë0W~ôi|ÕbX´¸\ù™¾+Œ=5·WJ¶6z¶º,¶2¼„p„âéz³_ÝaØ5ÏÎb*K\}õ–½=Í^=ýK§¼™r~Š¯â¢Œ©ssÓ ®Ì…p:A÷>çâ›ÝéqˆçÞ.\<@¿2ñ¼fÉœ6l™é z›”[}UR6­æ F6Ÿ|5åö”ŽG Jãxe±0Ò œ~NN1ô9M¡dg2 +Ž]˜ ’/Žª˜l婜J!0sÎIž9V •ápR»^»læq'¥¹Û9n¹gÁ¯æ§ç[öÏIØØÎºëÎåÅ2˜Å¾q7äX¦Þy?šF.%ýÜßcZш{÷8ûnj5û$b ©w_Y`6 …ÍsÚÏèãe¶³TGÒXOζØEÊð¥Të]•â¢<<:q³$8GÎJ¹·³?4K å,#z ¢ºªi#<4P·Aò$шOæ$ùœèн¬¯ç^ŒvTH0àŒºk²W×yblUO:äÝż™%o\lÈk’gKŠõ¡W‘Wã;v¦ k”­õS¶¢÷ÎÈY’¼ìoE¯~:¦Ö¬ôt®[ÄxôŒ¶öÉM„ig*™F¹ ß2¤†•À8.ã¦z#++¯Ò«Ùó޵ß>B6Äù}“§˜˜ŸAH¥5lÞÆeè±ù:Ÿ/ÇåížC+¬|øn̽#—s=}Ü]ó0îvhÈ^ãäJPGK)+§4’žýhÛX_ä™/™çàw rG|g¯¸üÔÚŠÌ•sÞLoXnÊ[WV‹á£˜g.dÄ3þâ¡Bú[.´TnJxDÖâ±å Š›•ûsW#/<£$|‚ÓðªÏ½d8>¶ñÝJ<×éÜpÙã¤׬ßüËzÒçLT¶kú–§YúWÛŸ.¢­ëîè6>NeEŸRþ‡SnBm¶¥M`*å™…gZͽèe¤cæAÆ/ßBånˆò>Ø…Hž¾ýLü›”UÄÆõðqãæˆÙ[,1‘ëÊ®ÙÌ´â ¡Tס™ÌÂÓ‡—E-gµÜH0LÕo£uäHºUܶ÷¥Hõ¦%sþã ŽÊòsç s–Ä^Ør愇“¸TŽöð4y‘g‚©\ Õ÷oMæå¯8q€žª~Û¸¹åî[GÐ0%sR *ÿÈ;¸[ïP̮ŕªŽÛ§eÈã}¦?#ü"1(øÆÓ†ªîyÙR†‚\ÏíÀw7ç Z§~Æ¢õ¹¸«Ðöt\Îêø.ä!ÞSüÄeU<]5Ïc­:NJV#ƒ°çÌjóHˆBæ/…@Ãü\Àÿ„'—Í ¥îíNgPÝ4Oö%[ŽŠ: ’ÜæØÌ‘ø;­]=‚åbçÚ3ó¹þ—lë–§³Ò5–ÞxhnØ f= ß+Îf°ëå–]åœFñµ~% shXêäe^ætÝVëôr-t4NƒåÄ7E~cŠ—ßÙÓÖS]q$£ç¬ÆvÙìšé‹0„ÁAÿô=RèJ¾ùÞ'×ÝRÒ(y½“Mse6›k°dµëgЦýü­-•LÞ\°ž!vñÓŒG÷|‹_ÁwáÇ=Pÿª“;û£3Ø[^`±ÂWŸ´û0ÿê²Âݬœàž0‡™~éÊç ~^YΖ);š)ÆÈ·’ÇRÃÆ5FweÅò4·sÔ¼&Æ÷GR<˜Ã­,еӉdÇÿ€»/µJddalpha/data/vowel_MvsF.txt.gz0000644000176200001440000006031113162771467016046 0ustar liggesusers‹m½Ë™$9’„yž¥"ðþð†á¼L4ÿ”¬C~Qs {3ÕUiáƒèSTô¿ùï¿åï¿õï¿íÿþÛÿþþ;þï¿óÿþû|ÿ×ú¿ÿæôý¿üýßùû3¹þý¿ÿOúKŸúŸQ×_úOËÏß'ýgÌô—ÿ3çÚÿ’Çóý—Qæþ—ú<ßëEò̦äö}FŠ'ÕïO~Ÿ´†ž´Ú÷/×Ñ÷¿”ï?òV­zÒ¨ûI9éÇJÞÿhß§çxRùO.ßÿñŸçûˆOþOŸãû/¹écÌ4¿Oê]£ÏýÑÇÔ/|’þ[jë¯üžTžýóú³üýhû ¥ï |ÿ%õºÿeècô±?z©ú´ié3ÍÕÿêïI]yUÓÓ†þ²ž4êþBs|ã?uédrß_ LŽî{"í÷ §—ý ¬œ½ïoZº¾©ÎøÑ*Y·´¡öprý¯ÿλ=åïû¹ŠÔª¾N{öƒÖÚX©ìOTöÿoú@ÕhŒ¿ñ{ÎjùûœšößÉ¥éäý˜'ïÿÔWåè™k?­OTMùoþžó|Ïòûî²^ÇÒµ¯Õ~ÿƒkÕó~Ä*wlòðö÷üž4Ú>ë‡Uçþ—>÷Ù$]¤Î×hcŸÍÔ·ô{|êø[¿ç¤ºzV½ýüýšß¯“Ôõ|÷¨ëq@ÂS¾çy\îÑ«Pg1’`’¸ÜE¿„›^õc_2¿ë ·ãI¥ &•[;’`¢Ç–žu3x’ÞáìÜE·v„WÒ·°èýñói½ý1…±}t3ëw¬¤¤ï“˜Týü|\Úçº=i}jOÒ§-Üî¤#ÏYç5¿ßà„IÓ%hzR*Â}Æâ?eîEjû(*ÈÝ0:aRÆ÷A‰;«‘t-ÇXqÁJãtá·ëS¶þœ0é‚Iõ ö}™2À]zYÛ}ÿ@«Â^Ë~èº`Ò7LŠ€”÷‹ø¾£óêq“‹prN­ž0™ÏFêš:¡’öãÇ;ú¾ =aBj“Á}dUŠîé“.”Ì*”èPZÄô]RkBIá4d8§4ÇY0)_°­ÙhÀD¦pò‚Ö÷Õ|¯g²‘,¶*ûIÀµrÃdt¦Îb´}Ÿ'æ4Ë! Wû’á~Ú€o|þž”õ¤–øs?©$l"–˜›^d£fÁFqNíkNO˜èhR•2s¥ê/w݆ÞŸv &|¯Þ±ãù‚IԿǵïsNò&º¼kí÷¸-©½Ù÷w$Y,œÞó½éJÆ÷Ã|Ú÷Ä‹îs¼G¡dñºfÐöƒr%O¿PòõoÛdŒš.Ó£[Ù‰G·5üÇSô¹¸¨ß÷x „O´o÷/ö:ʱª>Ä~¯·ÜUœÞÓ.g’„ÉÚuw’P’øùmʲî¥P¢»FØ@Áh(Iþò¾Û²éÚd~sÞ°9RR46‰”^]þZš+æÚõ4ámdœ ~*lj:”.¼e>S˜“ï%9`2¿çôýdÃGNÜ g’û¾™¿Uˆ±w ‹±ÑÜŽsʺÞU?ò,¬,p­ûnuÅY𷮢ڌ˛|oÁPñ4M–¥ë#MLŸ¾«²Æ œl¿8iß/¼¿HÊŠ{Xý¹Æ¢à­èóÌI€vÁdd‚£ñ»”cá—e|‡cn…Áé¿(wô§3ÑOD°ªÂB_“Úˆud”IœÖü¾²%cm¸.¸׻ƾڭ-ý†”GV.D¾PÒex 7x>2½(ñä(8JÒŽÓ¬ïû9QÂëx¸GzO«aéž!g øt>·>"ùue&¥Gd½ßx© ­¹ÎŠœ··Ý·OÆn‚ÄçéqN”,Pò`cu‘†Q%$bíFRˆ”  }ïà’í92u–+à†’ÿ$ó…Jzc.€¼‡zÃäÙ·»âj–ÌOnp¯ë/®i8‹ôðï_:“á$9À&©:ùyŦûzwüobëòý´Nö§.ß[󳨰²WJH9Û¤¨ì)G0U¿ïèÊþäÛFËP–re,Aç1÷¿ä.Kœç?@!CjÜ¥ÈY(VRP¹‡YwwGoŒº¾‘”¾öÍëCö¶Èj ,@Òe(Žù&¾SæÄ{ÿ'7Ií‡ëm û/ÔŸKk_ïFd§´Ñ.øºähÛJÄ%OÄ%˜ œ¸ÞQùyËNŠ’Ÿ+7©ÊÜÉþ1•rýïïÈ…(…²^b_¨3èRbâw·‘tüÎ_{ƒ®înókÏÉ«ýžE=¾Lâ3ë(þËS¾½çû8yl!ìßqâdtåTôUU÷دM ýPº]iéyä¹ß9ü÷Ã]±OÜß™ô ‰ËV‰£•ðòûó¹¾;aR™Â¤°ï°J)ó½ˆ.«¢ êÎMº2ÒP2ýãÒìJsBk ˆvê—~-Ô’G zÆûú7JÊ/7!`mBÉc;Î÷Nß$ïô'C0q¸”É6¢ýIiK”iò¥rÅeäןä}F9þRïj:˪àdã­)ß*N%’syÃýßž¿÷1™·¾&€ ý…Qi:sŸ¶ JÚ6è÷ 'ƒ 2ÌrÕ_M¹¿¢Ú¦OÊùÛ–ïW/¿í @–‘µïÞv,qûW¤B<Ó“È>é|QXãAE¹D ›È_&_SçRš¦_`s²S‹ö{Ðþ-Y~}ÿF» #SOM‹„9yt ˆºJ¤%9 [¿îÂñkxf<¸®AÀp,çÒY $G•«º>Óì–¸qÀ"'5KÙ/6/é³îbÔîr™båjÓ§cKå5ÿ36[†ª×~"dÿ¦q UP?qeöOë?)«E¿ÌyË8²‹aE1Îe;ÂiÅY˜ë¬¿Ÿ*á½Ìû³'@êþa>¦­ˆK¤}e{ ª¶~qºG\ó~¤Í(oSEd$P¨<]ô=G¯‡8û[V¿ë#U'‡æÕàªÊˆÍ#ç#è»àt\ìÉ·^‡ûpý&9ÅQ‚MW†£©_ÉJ]ˆ‹ªƒEg:ù"«™0ûÅWSÿØð‘™öK{ªs+™%.ãꢸЃ§ÏÅ–~"¤Ë¥Qtjv …[-Èc2†ÆÓP̵­Óô}Î$ø-[X{¢%SH0pMeÉ Õôœèx¾½ªŽú^¡ˆ×ɾnƒ®åãúÍ¢š|ùý v1I·I÷²Ðrx^)ù©¸=(üE4q¢cî2['Þû¤·1²¿›œRºA¢"ßtnȵ,ÕÖOy†ÇÞ…v¤}̸ƒ¬ð@)Ê rºÌSAvŽJðiŽUù}&ꮹ'ÍåK‚[—©¤Wîj;:ZFKã%9Üh\Üœ'¨öSu|DGÅÖíûeNŒÐ¦mB[sã⮪†‘a-Ç9Ξ®4d~gøš#ч (џƵìk‰­sTz¹‘ªŽjW_ĵ¨Ä§oŠv5UgMÞ\ý…õì #;dÜ•6WõùqÂþ®»Qº‡EE ·ý’Nˆ|Q[]ìä—òoùJuÅ«Ž=*‡rç; ºòíð:ï¾DÑ]¢kÓžjwµCQ}ã~å!ϳŸ’ ™"?zâ|9zž$¥‰ç~1q¥!o£‹øy Må²ÌK|_Aù½1âë_©ö+ÖKj®u}¼Õùª=ŒÇNy‹“ÙçÄUêLöv·w©Œ¿·ËŽt9ºßndPXrËwìA¤àÆÈH?oó …€¾~Ù¨Å}Qò¥ò”Œv¸v­…zâ:ÎqgI'Dž ‘ÌÏØ‰»>H¥#þdÛ„÷y;v=S5k&w5?§·%WÎ~«ôÒÑÞ¹ÍéFƾÙnS¶a<¼åµOrW< <¦ 6D_»¤{bä{¬Uf ’‡ß‰2JüÜ ®ªLÄTÙ‚¹î\}×ÿDØÉž kI¿#Uêta #^>'J¶g®nj&emNÐÜÆpî¨_æ -ä &j7‡â”M¹’Ißuxfå¥pàåý=Üm+ügõÊ }ðÏÅåúmr³ ?ê}ºÝ­â"…m=sAÅdp_² ¹k€Õ}Kši Dìé%£Ð ÑkUÝyç0bZ%ò’Óµ#z”ÎWç6<åxR¥ETL@9MƒQ›ÄÈÑëXXp·ìRtÙ‹Î¥–_¯®ÐÅ,å×ÍhÙÝnµø±ìu#…"ªz©Àb§íù-Û‘»Â!^š; ‘¡ô߃v7§Ä9R¼é>±Ièè^,·üz¥Ý‹ñœ*JQ ½Pµ‰·u1ÉØ<Ètð¿_ÈÍß“’ú ÁR7l·JdU Zºp> ¼ªRûžßsÖîGø<¯‰—±Þ“d9ƒ1uJºç": ¥þËļ?b#:YÊäÀä%ê-\ÝP91ì›Î]¨öŠÅmÕ¢7(ÒÕ>D`½/ýŸÒ¤¢Û÷3£‚’κ…y¡¨t@¤«ÄøÀú4/ìºúH|e9Ùõ5ç¬/NÆT ÊHR‰.¡l ò#nF½GWBש¤"UíµäSM‘;ªúÜsÌk0sÊ‘Þõ y Êï_?>šY*Ú»ÙFhþ½ù'Dº@ ’æp`CJøÈtÛæ_d#Ý©Mù:NTœ«MdÍ’K@9©VÂpz+êkªˆTÝžìÁ¡©ŽO² ¹‘/¶+{/Bš /¡Ê ¿ÀLÅGQp“±*‰·!è/5š•ÿí «šäï2!¹ƒ1Ón€¸U)s_d²š˜ªÅu‚œéîB8ôÉÐE£—¼"ð;ÕÂsÄȲwÉÉ,Â|¤ê?FOœ"–?ûÐ ¤¤Rq²{ÄQ—éB?B>¼èù8>¡ VA‰Äè'@ŠÎq¹««ÀÞu€,»VyŸ Ðxkg$“@Ôüùþ*¾NÝ>¤º‘ÅÍ1+Gί¸ùÐu@0‘®?¯,ɬšÜà<ªíDz,ßü}1@vpä&x‘‡ëd"³4dͯaIÜUJ'>š2¿iGWø±üÍôù«+†ä<*‘Q¤ »Ÿ¸ µÛêõSט¤³ð,ÍAÕ×ËPT¾‡p ò«+ï+A1[1ýýÚª@¯—­ô !´æ÷C¤5>ÒŽl‹+t­RMª¤¾mž !us£%¡ß9ì)ÄOS"Ž(÷…¹ðÔ^àe²ˆô[ƒ$;¿Ž±CºÜ¾æ‚›˜9lî£K·Ü&’k‹­>÷ŽQ€dqºeE@£¯ S žîà$*nGŒ•U-߉q‹)g|ºNúÇ»Hص· “—Ÿø(|†±6×ûAGÞ9Ul¯NEjË>¦²âß4Êã9ÈP¶ÊkÞ`œðèb­,Õ"Ô.ªÿŸ6¾úQÚ;Š#ðâ ø GwÞ3n¾ÓoÕô)þouà£ë»T, ý½ E›ûg¢ýºD¾Mbn«zzÇ >eE5´¦kߊl$Æ;A0ñ}¦|†X*QØR­º¢{ëR*åPñä%ƒÿÄÇÑÑ)¶ÂŸáfžB,O‰Tñ‰]ÓŒ¶U8ðÑ”jlkfÃú&]îðãš8Lû%y¬üfê8±g?ëͶ³’ª·¢8Ô1/xVÔ¸ðÁµ&—Šòvuç“ÝþrϺè¶åej†òäïß<ðÑ;>.E*šØ\û€Úøþú΄#.J¿ð±+L5h-E\ôÓ~¸ëo¶¯Z'4]п˥<ô~‹qË„;¡O@NJIÄ™ú^ú"E§D\5ŠmEæÔŽ +nJ”Ú¾ÁɉE{Á#•f³gu<šÉ/ÿ†‰TýÿÅcˆ8pMh¦Ð!Àtß 9®'bWB B‚y¨ËÒîÙÜ€âòV|ðB:¿<=<Ú ’‹âàäÈ÷ÇtßL—eå\i-6¢Šu»½(RŒR“²ÒAÊÊr=yû)Zö'<æa­÷Aî© ¿$Z¦Av™3YkÊ™ßÏ}ÂCN¿Û…q¤ža óÑ]4Чo3ˆÔö€5}gE£¹‡¡`Ú½Ä*xÈܤ¥“r˜y;²ÖP'1`1+G—\ž©7J½¢«r´6obG3¶Ö E¸«­ GŸÄ-¤žæí>¸¾ ¯ õôùÈÓ“¾7ß«ÍÛ{”žpGO2ŒXöLÑÜP…ÆÂÝ)q©îs_îAÃ>(Nu^ª=õŽeT/”È´½éG%•ÀMïu³Ê~[† t àPcávò»K0²jÄ ûÂÀéàTt]~¬@‚¢lö‘ Y=êÌ:ȆL<<8 ªÄôµÝá:ÛŽîô²þÔE‚º´éi‘ü(JƒEa¶©P|'$Od”… Ù H”!»,aÒ1uCe8Q pTµAVU85þbÚdW¢ÊPÆt×0:‘ý—7´Òc:¤¾áëö@‹ðJÎC£UŽÍgx¬GíJB=+å÷iÓð‰÷ãúe‰ŸîE¸ªBŸÕO7‡”Ïß/«S%Æý.8>MZ!c_Ùuœ±¢° ë2J{‰8)²tªêL-¶L/ì¹qábÈXmcH£Ë2B…-+Lâÿ⢠ÂR0)²8d[˜‹È/7.Tx »ÑÌå‹Ì›`‚†‚^ ¿Á4g¢|a~ÞÁ— ÞzôÇ™Gó’v…1å.ðcÛ,]¸OÞ¸yí RÏv_ÒÚTì¹Ð3]¸¨A NØÊ|ËQã&ÒVO毶æ~D9qQt‰g#£”Eg„6‹\(<1û8³OÄê •¥JM¹1ÙAž™Èª]q,¤yÆwvÊ(U®aIIA+F© e“„Þ½b,k§yýÄÅœ´à¹B¡2§Aþ5›9W_³ÚkD4.àĤ÷=;ð~T÷žÿbŠ:ÅÔ_REóÄE|îe~´¢g绞4ƒ_¦C̾DÔìW:Á0{!Ûpßµž*ƒ•Â5ó ²‡&íl÷÷ †¾;ŒD.%îÛ±öîüÕÔ¡tCƒn ge¸Úÿ¢ ïºçC^/Àà>˺L²Â:¢ã±ŸÃ?˜RZï€ÏGw£2b#ïP&ˆ*£î])•W|GmöfãÜEU«ˆülÕâ KjetC ääÆˆ0Ì÷|Ac2(­çè/ìc¡AÅDðnú4ÆzAƒò8õJEªƒr7Áa>Bçk1¨ \×ÍÜód¶]ƒ;æ¶Ôx‡¿ªž´çým@'4`>C•„ †á\ŠÌéÊà$ÿˆÛ¼žÐ0I¿ã8/¯J‘e6s7á ýrpΗ 8Nå)”Oz.Ô„õŨ ¾_È ë³ÞHÂHòÀîXí/BŸN*íîÂnfžÈP¡|UÌ5RÝJ“#ê»Á¼¬Gn7×é@ ½8_C‰ßç7DèÌ æW!ö|ßè È’úüeó=“.P00õ˜LUˆHk^.#© C)léÅxPU‹ý€…CA¡Ü² ʯiô03Ë%Èj¬Þ$DÁ¡<*DïÄðÄ…¦EɲáÜ„4Ó( RuÓÃæ8qAÍ(·ƒWç&C>sç¤ öèà°`†öÁ~1D€‘~ìLSh´}(-4ŸÓ óÆ;ƒZ}·¤àiʼõÅŶè‰Yøõ‚…¼ßÛIµè?ôy³É5fíÈð˜ñÃX:áé¡qTB5™l8:…Ñ6R”a–/X@6r2œrã6LèÈ_ÂԾ͟>=Š*¼MÙ½JuÙ ÷ÒωyyÂ>»FYŒ¾èxŽ‹†Î!ïìáʺ¥·¾ÐÏYÄÌ…%Ùx¤iX¥€z 2:Œñ+j.*s ý\fºŒÞãëvš'uôË&\Žrá¢1ÎEuR3ÂË“:°ÛO™9"éÕ3ж® Î;Òß=CQÝJß¼!’ ñ€Å$aÒ9@篡"C òV~ñdɸ©Ÿ°(Á9”µÚ‚/Æ›-oø0“غgO#Öç„…ùÇæ 8æŽ{¯üßr:ŸÉmçוxû¥Ç0…á Oà“©’3yôú,=a!kØ‚%›àD&Bö±#4EËzX®ƒ15Åôt™Bâx”ô«Ùò¢Þ‚w*€âº]YðL‚nÌ`žÂ×Çx›'*¦ÓdY&ïjt™2f]"¿µ á‹&¦Qø£ôy™gú¤Hd*- @­]©w£æ¥âÂw9*«„Â.ç¥Îôi?ÑUõ¦<úã×¥2:aZ~†žˆ•KåDÕ?ÌIŸ#0áa‰’c<¢Ù_#€ݘj@áÜMg²5”)ô»wÒè,ÌÆÕÚ Ý‚N±e—²!ýÐ1Ä[ê§s—‡Ùã{ÊÏ)ž-&…* î¹R1É1 å·iú J˦K<(«æ‹ÆfxÿÃ*'žŸ"u¦÷¦”ÖvUêýLÛD•¨X9 ì/æ½,˜yʇB††Ç®-òó>©itp¡f¦ˆ³ Ý'"±\Ž óvÉýwÞ]Í㪮1ï¹À³1ñ¿ylÅF­‡ÁÝ¿W™Æû¤G}±˜&!(°¾¶«£Ç²`oQIî¯pÈŒ'5ýíBµ=Åx^Ÿ‘ÓÖ†æ^Ï«°Ä?|”¥¬E¦Û8‰:öIAò̪‰•óÙìª÷¸\öõ…É|,Úuú~“¯ôx:o‡áçõFA‰à>W£J“‰¸µö‰„D’¿Qñ3ƒQ=ýªÿ2)MuO¼E…;Ë÷êÄÉC†ƒ€ú kâ„×=õ ðâj›wâD(X!5$ÿééG¡"õº»w²æõ9aòhRÔjrÖR1»a€a¿ v”YÚóvcN˜¨Gfjßõ3ÁÖ•Ù%Ô²`Ìâ˜.˜lÏW”je(3‘‰?•ö¢÷GÞgÂÎ’ŒT ¥%ØÎ^òmD&õLó;cFaý%û˜&öÁô¨2~õLPåýò)'–â‘ÒÏ%’(p(Ñ: rPÆ]»æ(­c¸r½PB–c[Z}¿I«be*¹H]<Ùç…7 ˜¢iredb?*TwÕPª!&Á·—J[)kÖ)PÒ¬ig!„_.i¤ãB‰JQzš{¤ þ ¡ø¯Zö¡ûº…V.”PÒ~.Ju²„•Ö&v…y`nnζõ<íM žs5ÂÝ Ö§•5²ûíXóE['LºN¦•wLÔhý$re‰žqn4^÷†IÝ–[f§â’OEË@)¼gcnN$«ßåÖ,ìr‰Ú‘ Ý,)Å =¬.z^(ûr[++w^4y¶7H¹ê4`!ì’ÍÕ¾Ú)C±*$íK2":~Q¾xkQnǯß%sËñ&m)}áw¡N· {ÚµÌð¦'JÚcÙ…QÌ/%‘b™@„ žR”ÒÊñ‘ZôÉ/Ì–a‰Jƒ; Ú˜+ð°Êt=Ø@‡Žs6Õ±N#þ³ H4Õu0Édƒ¦(Ž#0 Z€‹Ñ(e²­ä 'º’¹»7„õH£'DÛÄ…¯šn§ÞQ—DûB¿m’¹ŒCÄ•ò1=›?m•+æzöåÆ6ŨÒã»mý-by16;¸zÂdW?¾‘×Ç,h$$Ý@O\lÂ;žãÚaâ éáõΔnë–7Wªûï>Xvèy.”4ñ*¨-Ñ…!ÌÔ¥B-g1\ë/I4î÷ÖP<3Jˆ_}w¯Knîð<úš98.÷xÖÏ«•¬pJP#zTÜq$6§Ð¶‘}D\2…µÕ›n;Ujžžs"l"qTŸë$ÕL£D Íó!´—9P@ò5+=n~s¿â­5ŽëCÌBðê 5ï¬yp7Û“(¨7BÄ2?³ZÂã±£§¨‚&FŠÈÒ‡GRƒiÒ¹…œ.„?‘'e­NgËœN„lÊCõ™ës®f­wÎ(j Ãå²ò¸ [ŠBäþ7]Kä7¥¿ q²Â½IJ ëïÒIÁè´Ão„è0ijRìËÞÊñà\ìF¬…“!l¯çÄȤK`cθ¡ùLV<Ê 'KwPX_w°]Œ›áˆ%xÈ”WQÍOGåȼŸ)=Rˆ×ï[a:b'û"q Mèf°=FÆæqŸ3;3³€r¯“âÊ>¶*)ìÒ1Ú+é9¶ÖoGñ¨Fh»ÓñóŸ”D^¤AëåsPÔAa Ï弌Œvb¤klÐlØ/H .=-^ük[·Ä:ABûnyê™yg†3ÍÒVðG&ß` ¸U(ýî'u4Ú±.&ë'xCº¦%¿aSò§˜üCµ†.rUÛŸ}¤¼&j¥{bÖR|…–#:ǃŠÇ)êöx陓05,7å0QPší‚¸¾°¯~ËæÚŒË•¸²x<hAÿL“ *%=IdÙŒ‰@²«d[¡ñB5µ¡_˼0EAù±þÍsy’gÀ^¢l¡<4G"9>Ñë®o-c¡÷Ë>@Âhü3]üŒÈóí“oU÷¶Öé‘ê’¢X(Gs±0â˜]Ï5JVdÇÑi^Aq4»ž®ØQÖžÙ†™”á³Ó’Œ(eŽË‘ÀH~¡´6`uW-NJ9G íÎÒl-¯¤ LƒÕ©R ܘõézžvn>0R¥¹•5cö! Lo^DBbÞˆwôx–jQ»1²$îîßo6ÁíˆˆÞ v8ÏöÔsçíK¦-§—x™ÞgºÜ@t’éfÛÛÄ=0²­x‘‚ôçeC„Êž‰ Ê‘=ðʰ,{ˆùÉ~‘5Ї"äA¼Õd ‘Õà¨Èl àÇð Ñ«"šJæ©O÷¸DIvxïNJ}n”HÊn ‹Wþ(nxíJxš„Ù1ÿ‰¥XÖ'bÞ’qøª xŠÌð· -%C&É»_‚0Êà—Zíb’ue‹J‡L¸›×p fäÝ‚ðgŠ8=»ÔbýKjó&¨Ätþ=ˆÍ;.õ"Ç”=—ܹ×Nà‡µ»‡Y‰ev‡þ™±¥áòoŽ2ÅÜ£¬™Ì(¹}?ROÂ3ëV²¬Õ콘AHD_Ü5ÞzYû=©jiÔcEl÷ÓÒ® sX›µäwó¡€JþؼÎ’Ý%Ø[ÜI”áŸç;’d >ÉSo%‚@Å"˜o¨5°r Å4Jóiªg–³Â%YøÕ9ЯQàBÌïC¹bãBô°ö$Û†Xcã´äq™P¥~Üû ìÙ4gŒ¦C!@pÌÓ׿«8¼+'P–Úý9ÿëW±Âiò™jD^™.¤l ›G]ñ²¹°’`ˆÄλ\.¤t©>Ó–m–T\nÀƒ”å7˜ ï‡üS7R$Ø…ÀÔôͱ®†Åö\Ú±6”úJDDRª"¸oܺuœx“þSZPçÔÝ´Â9HizÇÅ\ ¦Ç~9$] ôi¦YÔ¦,¦Pº’Æâb]åNDÖ l¯ )8ÿؾá@ÊPéÝ}RܶuÑUVòÕ ãP¢ìГnuþ`%G{"–ȱ÷Ϻ™æy4¶ö­çÄÉó¼Ü7]A4:V± ï%y«ãz¾ªË¡ÈÃû¾Î…Iˆnî[ñ4ÝÐ Í,4± Ú9”ì&dŠàí°ä©Ò¹V‚‘ü]?a2t¹‹ÉÇ6ϯ3àyN:L¼•¥ëã„I“0ƒ s¨µÓß¶ ÃÕïUJRÚt­7ReÎåÀšÂoTY³]tò\½µ{4þÁ¼Ô‘É·v‘ƒQhô`fGÉʳ[wî<Ò½èǃò©ÏD0ð $úÙñ“BÎb½AæSOŒ¸ÜèºëøMŽSÑ-Ü…ua$ÿù¤N%®Æ`[ÅóÎlè\ {ö‰¹‰<._2Ô ðâD·a útƒ;Q~„Y£ØèíÛäŸÒ ìLÿb&óÊ« ýI‘Hgϲ–%;.ÞËpf.?Â_B!ùØp8TêHštß§ù¿Ä²l8ð¤m ŽOQÿóÒË·ZÂéIÐH4Øyº Ì'Â1(5ˆ‰Õ#žÓ޶¹¥ã1ÿÄ T•8‰Tu×ÂŒlîÆ»õl¦ºéWZ9Ù%1k™û’1(K˜ j [i¨ƒ­»é9ùòTQ$t`„f\4péÜ#¯Å,-ч[ØN˜uc$‡…zv£A†ò݄νÆe‚lrBD`oƒ†¬á™%'¬òëšç–hɽ)<Ñòh+Ç*72¶óZø™j£©nav w`dŠæZ=*¬ºÔÛ±³ýHÜDÀz Né¿óÞ —âZù÷?Ùkk VD˜ tñ{h½Î’.Oë<ÙEäàÜE-ˆ‚Ž“¨§˜Åù\ QÇ¢j#'—o5Nr”–?¯p¾P’5ǃö¬KË.‚XìÅŽìV„æfNØnOœ0Iˆd–ßm³ .6†¼d•OÌíïûu„‚ù¼R¡N–=§VÙ·ÚIõ `çdõ„IòÖ3øç§ _°<ÞaÒž§˜<Í'LÌB DxP¡:†ì,lï‹fö%}Ë”0y4 b—S‚ß,óŽóð)yŒ7VB5¼]‰ÞÛ Š¦ù‚†Iô€‚ h–Qù¢ç„ÉRß¼ŠÅe¤ÝÎP’wV³­èÑ?¡brÂDÅ·^Þòo8¹Ô©n ­XÎÛ»íÓíK’Ư0î(,ÂõFkbýU>Ú²ó;`R´‹ÈÓ(5¤¾)ÞÐtØrK=\›~Ádw¯‹È\žrLËoÞÑK“„2Š)©(™–XÃâ*­Jžd¢ ‚rPÌa¶J=æe:Ny7½ÿ"mºª,Ûì15º÷G¬îÚ¢!ZojbRÆvΉÔNò€NÛ>–{L¥!-“©P~ð1Ç­Ñ?—lJl±² ïë×pθüß“ÂDžÚ^Rƒó›Lì4Ÿcj<§h^ãOh…([ êi” <m ‡fŒèeÛ.´+ù"hFo¦ü¢B7‚ÌÛ¹~Ò×hB™ý¼Ái³qXI̪¤ÍŸlÑMœ¿×¶3à¼Ñ ÉŠU…)¨$«D$ÇŠø_ÇDOÚ¬íUòª[l$°à/}BÔk£`úõ(ÏïI;?kïäeì­BîÆ0‰’•$L˜LÁ9XÇ­”Ë­þÕ¡/™lÏßDÃÆ©\\¶Q/¤ÐÈe*tK¯gñj'%B€÷¾‘Õt¥J÷ŒiG+Ѭð:Ÿ—Oæ"iì¾PL%Üï,v;CŽ“„9b&Å-ù™Žƒó§CJ/½”`=hh@Ý}FTù º›W£¤êĉ1‘<8©²ý…~`ŽÛt]f„^»ðù5ŽÜ+NåJSuv¹4ÏúC{ï:ù(}ÄŠVÅ s\8y+qKȃ›¾Xt`TÚià„Ìç©'Nv5µQÊÏ!še–ÊvìGåÙÜ•˜ˆžLvpz}O ݨßÒ~dg8%_÷–0­ýü¡d7c5¢¸ï ¥:‹”8€fl²3v=MŠ@Ê¡_ ‘pl¯ón)é·õf L3áìšÕ’ªž‘tëÛÜÙÖŽ:,é3$Ï? ‘Òí ÏRþŸc‚êã2iâó£ø°Ò{Hš÷¤ÀÍ‚ö“½á±Õ£×™ÿÈ òNsO[Åà×ú]<Æî"GFœ»Û›Èt§q¢dwÈ õõc|žFŸ‚ÅmA«Æ¸À„ÉýÉDÎØùº” !¦rˆ5.Ð÷­Ï ’%bI',ŸØ8'´¡¨Õ™úG³Ä܇vdí+Ùq7ÍìÃâtIS5oÖL°XRZoô ’ñ–ø?ÉZ Ì,ûYá‘~‰»™ûê=Gx“7Ú<óýPG¤’»ZþkG&ì]šFºBnŠà°kÒò!G™ÌÇ“l8ªó?¢ídÉO Éý ±cw¯·ß2KϬ𺠒!ÍpŠÜ˜qõþCÄ$qo™œ1Éx@$#ó»8U¦ØîÅÎô#ÒjžvaÒ`œqOÒZ¹^|ïv´n[h :ypå2: ²ƒ¿"pvˆþ½mÐòSWø{—¤·çyBäÑd©–ÛdÛ4ÇžÍìiÎ÷9Ä´ó&¢iK»·RwöÎxRõÝ®$£x;#ÿÚËÑ{Ký\?¹\VUYûo)Ô4®xk»àþÕõ̧×2ŠÉŒbåÇZ¦#ÜÉ‘=ù°,`‰rܹþN?Âjos‚DT«§›(ÇO0Æ´ž%X^°OòB½ö›-$MÀ@®W/Ûâýšá ÁOeÒB^WV‚: Aü—’îyxKÎä58ýÝåA:ëù_´ö¼L†šëöN-~i8Ù+_Ž„mT–€Ý‚TDÍ Åj·fôBW«H¤ç[ˆYÇ›Ÿá¨X¡Ã"Iø_n×H'H–Z¶³˜}¦€ÈõVuX1€×fÜ2ÖX×m--$õ´}‘ùE+ c`Íßàó’­†KÍ¢}‚„ãNèÒª à¹ø·¬í^Dg÷“bñ§¥}X¨ë¤ÐÖÄ…]¿@’þ:‹-œâ bo^Žª7äWíàÄŒ[Ïz‘&˜«@‹¶ÖÎ*–Gù'ÖRi T[eçÔÜ‹hÞ–lú (^"׌ٲØM84–âÉsÍ‚¯àí.dáL¢íèêxmRÄqýYޤºäÐ’;ƒçÐúxû‰/F^vkìþ%`cz¥CÂRTçL‰>M}NŒì £Ä„Õ²\a‡xAÑôqígž¡å#MZ¦åÕÚAµâÿk\ ·‚×õSë9üHSÀWDÛ'k7Khi×òí¨–";Lh¡“âVx2Mß©„I1Î:Ò«pB¤ "ÍaßÛnŒJ‚e„`ö¦år5º5ý‚HÝ)’5ÀwX>Ê:é &æøl0é¶#E™m„ ¶;+ ¡o´EpêéD¸T5yów§™HÑhSsGV¸Ó F8"uºžÎÚ?ˆ‚YÓÔ›*ã L¯{Ý'7Ë¥âNvn[âAlIÌ’ ý¼{;ã»YûѲ%ÜŠ·<øÁhÕãËÍÍß°„ݳ]6.X}„ºŽñXð~9v ¿¥·ƒ°Y3oÅŒ/ã‹2‰þ{Îä…ȱ3mR$À(„OÔ’Ø%ÝØ¸PúÕcªô–câ!6´PS˜T]MÄG,ªÆd6NeÏÑf¸µhÕ{Â"稃|¢Eƒ¹¦åvõiúKÑù^\?S†˜ž³J§“ó-dhóÃZ*+žbA,í/Žvè2šƒ¢ö2ûK”J¿;ä9:±™Kh­±Ø›=5¸[Õ7›ÀXå‘Nx4*E8 t½¢¥1n¤W`6™ï(VrPFHÇ«¯Ãøw=´´š§-—ƒÐé5’†W¶ÇfÛþú÷6bhm°33&-kŸi i“àøÐ¬6×þüãÅY_ת~»q¢Cu‘qŠnº/M¤@ŠIâ‚vÏä§z¡£"»+k&[9ø<.Ä«T40>«Û…Žª/|в½gX$ÓLR¤¶•(³yfäKL›ìÍ%ÙQÄ'{¼¼¯£KaBÁ„ûœNt<êdÃK_•“:FBã(b%^Ÿ-S«èXq4èðDŠkãÉ¿BvZujk(ÿžè˜Ø G}C'ͬ~y`oÑ3ofr}Þþ¤šr¿YÏ•þiöòLr €Ñd›NÄßï·çÃOtøž8$¤¦qÄ ;Ž(Õ9)rˆöÜ΃ ú9ËÞóS-%ìþ ÒǰâžÃ©§©VfœÆÏK{´ @ Ž‹f1̲tçëB¬¾˜¯ a™O,m£°NÏuP¼w3'_à`$%Õ©²¸å»&â+pÐ B¯²îÙ¢¿ 71™×*ª±^îKKq’ë–V—ëÐíx*\,„.Ú/Xëã=Š·Ü®(z'Ý'8r( 3œ_8 âPG´¬Ž„ͶùÑ­7¿Qpôš – › § јaà+^«xÎú³ze²¬”ò¯[†­‚Ì“[cõc¢êiŠ,ÓìûhÛ'ï„ü‹FÉö6g`E¶íÜŒv¤zŽôp«¬Ö¶}v–Ó… †»M˜pkÜÄtHžT…fœBŸVxÍ'6–X¨VPÊ”eú«7øyéâð`؇.lº+Špz›gÙkò¤ÈY™/I1Þ¾ù8ˆX»Ù)ªÏw+Ǽ’(áÙ3¶ß ´jŽÆ:ÙæÉgG# ýDÅŽ¹à˜“]ÊöXÕKµQ×#ì$Èb }c›ÔŽŸÂ7\±L+‡Ü… —ÏìµX¥mýŽêTÓ ä*œUó8fO1#üˆ‚ K R=ÀQÃ|›SÙ 0ê_NxBÇ—¸ñ}ãçå1õ-¶Æy³à…"‹¶eÙ%†AÊVe ƒvï{:yË9ÿ½ëåâ.ÔÐíÙ¬ŽßsXOýTO¡»9ÉGDŒØLF]³S§ªzõÐfO²H!Y„Í á¤¡eWV=ì=~^£¤uÃÌ$Ù`ÎB_¡²¿˜ñIØgÓñÔe\1•.ß}ª!ºÒ›u¥Wh± _!ƒƒgÔ kÏVW& â18âlöÅ@;d¾Fj‹œnCž ‘]Vz.œM:&´±¢2c‹Ap ’㤢­Yj–ª¨fg[ OýØ^È`”rš»D[а‡[ÈäÅ Zñ W72,•i^Ö­úíŒ(â™ôJÒ{oÓ®Õÿ^X‚QúøÖ³Ï'6à$/Z´d§Gèg;¡Á¯j¨BÐÍ®TYÙŒÁJ!ýšVå÷¨(z™çpN@U&œõµ‹@ß°®ÛmH Ós.úfƒãbŠÕFÝ^ì»RNlL$shåšËm=d©žRñV’Ü”ë~€•ižÊÍ{õ|c«Ÿ«âìŒCÏéǺ°ÑÅñ ¶=/‹¡x°ÂÔ"´ªŸgÆÑT×K!v‘Bb–h†0nBa¦¶h¡~ƒŽ&ËÁÑ×p?Äälú$ïk·nsÿ..~\Š¢9ö2¹²Ž¸´g¦¶W18ü ¤ñìˆê>Ñhͱop¾7"ÿD  Ù!}i¤e`B•+±°(¸îm•lt,¹(æBx8bËQŠ{;"‰=)Ö+oÒh‰'± KòmÅuÖÉö¢´îÑšfº¯+©á±È8TCÍ“uWT·°Õ“â)*× )DþtƒÚïIìD¬žræð­³ çÄcÙ”¡Ü—ý§^Å«Ðüxv§¯ˆà>ï *.\g+vøÅ Y @mÆŠÀ(ŽgO§x³ÜOî‰òþÃÎü='‹Œó¸j–Bcø“\=0S³@{Þ݆-4ûüÄnÞ¢wï¶eÍoëÉEoî—Y)»R¸~‡4µGå™å„D;lMtÝlªWéÄIòâ³ÙÆ„zÑþHËÿ’˜Ãäéç÷2?›ûI*Nèš J%ßdæ‚øÖ*YëÂI¢úA9ž Þ1g.Ãëò1J/Óç[~ïĉåáÒ¦„¬aÂ’™ÏÎi½éÒ‰Me™Ô·ˆ5‹õad&gH½|¨í~ÞÒu®ý‰¢µêÕгslÖ¢³ðü½Ñá̯?²uVé“嫸w–ã!’„€åé;$™M²=RwÄ»?AœýÄvŒ@£®¢‡–ÙØ³K'Pêžòͦ௽ õ9×Ëõì~0ÉÚ‰”]᪱â,ö#’í=jC[p–Q2˜Xž´LóŠHÖ`VâóĨ"9ÂT{Ö˨R$÷@)æ¡'rk©èÁæÕ&Eoöñ¦lkž´y¥qa,…ŽIˆà‹þæ¾»¹ÍõVøÚ~@ÉVSœ¡S±ÏB樊PܲlN å~¥°À˜°˜ÍCH?z±E5ˆy.O “b打ÝôÚBV•)-]hª{ª24d?”Œ>„t¼Å‰Æ©¸>Ë«L ލ~öWŸ•bí'ň zØ¿H`ÊêfåL²GuB^#ÛXbNˆX½LÅ›¬67¡Œ (*® ½1—æ™Q¥åÞý²Ÿ—à²}þåQhoZ8±†ÎCÒÐbqv‹ ÙDÑ4Ç[;ÒU›Ë!O¨Ž^«á­Y4 ]-mµæ1O Ð㙌õ±Jн2﨎It¿Î¡Á]„¾€‚ª7…:ìXì&Šºt#òM}B:Λ¬Â¡(Ê™(!,Eyja±6ßÔ‰¡%áHqö;‘2 Šb"hêåƒ~çM×È7›2¼c )]Š?„Ã}ÖˆÎ>R¢ŒÆH³cWÇ ýRöGDè!yzЉ1¥)ø†4¢Þ~Ñî^@ÙÕ± šâeëG‹èÕ1@EÔl(ë(ÞEšßÕõ|3Ö0.Ôƒíc-À Ëó¼Wì¥À(à÷¥¾±•“ÍD0êÁæµÿƒ¯5—R1“›ÕÒLï1÷°oHèê@ŸH•'U4Z˜=ÑÞòԾܮ,\.…*9ŠwþñY1ÞÜöý“”Û¥¨ºØ]ŠFž!»bc ¶6F2ýÐÞk\>ECƒªè,QOýP`ÀŽENº-€º]ϱǠ‹ÅÄ™åáct&i±Ãº1{ÿv)‹@GO ­ Ïx2T["›O¯Ä¹£|EdxË£Ž—è³Ò˜™AŒV®ùºáý¬)sOÄ«µuŠvtGc»Tt³ñ¼?éâ)›,RƒåÆV„n jRÞü “ô+ÎvEô\óó)+šÍWØJ)wɪ ‹¨5b÷;™Ï‡kQ°‚âXQ¼‘ʯÈî¹/?šãÊ3ï@*}¯“AŸäM÷oMè½^9JaßÃCŽ¢TÙ!)E‰B=H×›oæÊ?θ>ù­­Rÿ·P0 Rµc|Ú•N”,-q1©S.e7¢©ŸXYÆ¿<ç¹Àv%ò«ª Ä`Ú¿ðÖjÔ$»Q¿n£Þù‰º™hödjYÀ&KÕ#¹ XWø±\oo²ã.wBF8AnúuõˆR©ò´ôŽÞ )jÓ+íŒz?£œ®&ð—Ær.MiGG(øÌ|á$©íîM¹®“p¬TU¢gÛY ÜÎÔ”/œÐÀï&1¦¸•Ÿ8\(•ªÅêzNióä.œ¤"&€+ ù?þ˜QÇÆ »y¶íú‰èz+ƒbG¥DVxÇÆ9ºá®¢%/Û¦BC±Rƒ¤VŸÑÔî‚ÞíH±Güû±þíùâú›KPÉŽ‘¼‹âØ‹½\2¬?ÁØ'ŒÉU}[¯É’ænNy=9– Ì'bHh)[|Žþ•#YZ<Î4¸!ÝÆ'Kù èªæÒPe¹ÈI±Â:GI,Ý0‘Qޱ!ÏÓÐNPyÉï!1ÎFŒ é,é†IÑöŽ‘~V®»FÕ“H®£uz´¯÷·×åfën¸Øp«ÙL/µÈH9{=³eþÉØ)Sµ†ñÂR&ȇîMŠj­iÓ»?s»­¸2§šBHÓÐ0ÿ¥çÑ|4ƒ¥?7L ;øvx#âó­÷L\1i^ð2Ì'ú¼x’[ÊžyEw }Ä$®ÑÃîk ›OÑ —ô¯;Lûô`#czz®ÅÛEš¹T;vRtÂDuïB*å 0¦P]JÉÇñÆ„Ün˜d•"à["ICa6 U&@L #)èõ† i¼‹Q!¸B”‘äÁJÄÝ‘2íŒäƉR‡nØ@ÿîL®ãW\ ÝÛTj\÷Œs×»+±G¥‹¯:™¬‚xmââ[SåÊ^eW´9$ÎüŽM´㳈'Ÿ—Š´›ÙW൤à=N3`­«ü.LÖ;¼¼eþ'òš@…úÄï*W9íÊ#Œ¼s›'T Â{Š2¼cO€{æ÷ÜbzÿÿBŬÓ‘µŠÛ[|ÅÎ_Øoo@ÅìRúÏë"/g  ¾Í F/-vâÅ ^/i…;ð°k˜•¤&e\¤ß”ùM½½  îOBE)Š•l-­1‚yð¾D‹eW²úºÀÒ%¹ „BÏÛæ…®üštœî'`Ñ•ˆ^CjeYœHR5×ça¨Î} O^`Ñà6‘c–žb¬*™ Âd†‡BëZ·WÙ#3!nh<¹”B¡Ð›Áö¥[ä(æµu@¥©¦]"~c°ßb6$0B[ÉUÃ2Ü:¡²SÿªÒÒþ0j¨ßòãdåTˆÆŒÌOÇL%ÝPµ½˜a_!W§7à´Yq¾¬wh,¤yC¥†t¬›%yèÑr…æ‰.íž9æ}HbïÄJ:æ–˜ûñ("³…Ó H1墋Í``yEà å˜¶†=ÕM=Ëíw§¦ :5ß ½BkϸY\ó­ÌsÄô–,°‰jS®ÿ Eù…kûþhgYw{øVŸŠ¨ÜHK¹Ð²e«‹ë(Qoªni¿7 ì|võŠì苽ⱥôë¸'‚0+tµw¼w_¯È!z“^¬Õ¡&¼¨ä¾–c_ïJ^¿a,¿<þ¸À‰¨êŠxâ¹Á—Q@+–e|å—L_h\b޾—†NE4þìÂb§]ÈgŽ .Eñl ꤾ… öòŒmþ]I/íÛ~ÁEýYçöAÞLÄ>6:ti=ÙæT³”-do±DG ·—XPwlo[>Pèû3o¼tÖÒLâVÐxzHCÑÕx©™/Kp—.÷‚ …d Tm¤à„õFÓÇ[zš<þq/“-î,½ Õ}Èl ŒÍkå ¯/Sá@tD¨¥x•”eýF˜€d ¬ßuá¥kY“W,Qã+¸,ùèèpü¦©œ_Žu;˜J»Î"&~ gÑz$f)ĆPÉr§5?^è²Uæi_B[ 6þ¯âÇØu‰0z;R»#˜õ‡™Ù¯´f0ÝSðqJÈßxAu´Zu\8Œdþ}—ÑÉ+s¼kfo¸T-¯²7ë6tØ1oÔ’C%È÷ãƒ8æ?É‹¹oPÞRmoqJæuæ{Jcüã^¼Ýk\ óLžÂÜ®²»Ö“ûí^PööÆ]–¢‘ý0$ˆPŒË žFû'yA´Â Ëož:4qçö’?)¦Õ6Ñð‚K ¶Ï'Ŗ̘$ ÈKw@ÎaÆÃÁfºà2 » jo#pF®âýã4Ÿ»`\þƒ–úD7â݉k’5vªÙ˜–½‘ÕêÙùFËžÌA}î¥/:Í´0ßâ“ Í<ë?ÑXÛ¸óÈ",^KÑiBéd¼†Å WÝî¬éKcnÊCrôÉŸ„5Ÿ˜¸§‘çÂø[Ô:ÁBóð íDdþÐÂ;ªê®ÿ”_mñ³;sõ»Âê.–ÝÔ-ž›i&»xÒŒ¸nþ›êË»SN&Îë,½b!agõÄó?Áœ~lŠZ•º¢–Á"K#wYãWBvª/ý0SÅ–g#ßf°]rŒŠ9k°:ÅŒmrq‰jÞ€ÈåOè ¾—kq圶œÐ‰–G\*¡Ò…¢5Kå-!êŸßÄڇɕ.ˆmç¨Ò|R´±:©EZU5õêÈRn¸èIfªz¸(›™Ïœã犑FøJA¹Ð¢5§)D}q®;ÝûKžóèHˆƒ¼”0£E"é=ò4å‹°YcäÐ#´GõV7ü'Ó×}ê~ðÜ£¾æ ¼œWÜä¡™_æäFm}«ËD6Z ‚AC<1`òþ×YHÿËOò„™¹ö’¢>È®ÿ~WåÚ:Â<¨¨W—C"îW÷UwbÁ¡¹Itšv Ú¿Ä ñâš¿kš!,ê˜ÌÚ>õxVᩲ9Ø bØA޶Tqh”Sù²Â]<ªK½ÑÓ„®“v׳)äæƒhæݸ4Yšb…8Þ´Õä‰Ózé`h´2¢>þ¡þ;ÎØ4ubaE¹1̧$Ð"<°²€”p2Zñ¨%1Ho;ô2J[#H]“¹!NÌ…V:Z2•G¡âZ5ßøI–Mȱ‚‘ËN`ÈÞKJÅv;µ_ǧJZ èiÕõ(/@÷Â,è³T 1{m!vÇ£‚ÒŠ"‡’ºRÌŸY”bµ×¸~’Ù(ÝæâIôè\«¢„Guë1ƒÃCb<"ž˜G.Ü úºd%ð?®$:M¶*Gÿ/0-¦wñ$Èùå¼r.oØXÖô‚).îÃòkó†¦lc5Ž»ñn+01H­Ì»0,®‡®7ÅÇ£šü·%Z(’Ù­D¢vÏ!ˈѧç†öòÚ(6´&=ÐÕ ôð+`úyEˆw¢zÂf‹uWѱ?)V.-+C«ÙÛžëöD{Zá‚M’ÓŠ¡48[{¨3Ýv矋ÓË…š=ÔóLwï\†oýU,oiËœnÔŒ)渙`ø”p[”:?{Fi¤áˆïͰî=•±A‡)]Ý\K¹AçLÏÚMóW#F™š‚®.<¢g¾"ë<¢ Ú\7hDz9jÝЃñæˆZ=*yxõ„ÍT.*v¦˜Ÿ±ÌÔÅô¸òiÝ‹}S8[ë‚MUÃyò…MöØ eÒëŸ?E¤yßõÿ…MŽ¿]Š ^Etž×µÐøäÇ:öqÁfË"Ô·‘c… Kh¯2¤Üè¬y’Æ_°Ý°a3¶ã '’‹GÜœÍ#L(£yø:?l6¹é·‰žMHæ6?®Ñ‡&Õ©?ϓ҅DâQ7┣€ÊU­D ¸,ÙÏzG!'h²ÎÜÔÂÇËËdÓpÇæŠR\öVoú¾±5èõÊ?ixšqY%“ôŠ ¸éj:×½Úù™PºÍ¯\lŒïº™ëzCªãFJˆRžÆ“’ðïj¿³ÌdkŽ?ÆÅ@ƒDµ½îåi¬Ò!jQÞ=Ϋ—/Šbó¡íŒº2]œã’†<$â4Ðâ¢XÖƒ=J¥ÜÚ^Itfïu˜¯FIòt8ÆÉUöÛž¥_4’X€v@Îý‚L‘º¡Oqš›ÊMXteJÄoœ€H¦x)é4SâQ pvyСµyÑòÖ —é7ìÔò2S í»9/Jkf4ˆiôÛbÙÈ0ªW³ûû燒 ZôÃt‘OzW-zý‚ËCÜ_È”R ¿òš¨µ_Cý F·Pœ)Y$Ìôr¤*¨ijó=^]æ#3™;ͧd_Ýz¡†5×v•ˆÉ†¦ƒnUƒ;_×÷ÁšGÄâDõÆrin²‡s´×+‡êf\°Ñ0f‹mÚV‚ÁjBâ$êÌ÷“;?-íŽÏT p©7{Jð 3æ¸RL†ÆÜu¾=Í–¬z/µãºv‡ŸÉ*gðyÆ´Õ›µ“—*;þ<Ô¨a]ð(ÖðÕ3›H%߸±†€G¶:ÓÔØb_ìŸ9=ÛQ«ô» «ãÕlºìT)k\E ‘à×£@ã´Þ¸a™„'Ò5€h~ò®1“[i9µØ; Þ°Ù%/ë0Šeú¯×íYÝÚ ÉR]®õ5â«{@¿†àåK92‰Ù3%¿¡t‹5X®Ã¦ß,2fi$ù·7·5Pwí7jdÖ‡¥qb» Ý ÅÙ̵?n‘;;‡ïVþÍŽÎOˆúµ{O 7”>eÜ]œ5`z'5]ªF´yzY~’פps«)@ù…çšñD&Ÿԫ¯2qì—·qè6<ÿs{›*=ªé 'Ý÷ÉÚD%äuÓÉþ`SáQ+^È\ª ÎtÎq>¿*@uÄÎjÔúw>‰QJÄ'»†2k={u¦_wã„’G~ŸT”䨽•¥R­)ã‚™³û‹J•D‰Ø,Òò>«XÃÎÄ¢Ç+9UŰʙ¨ï)Ôãõ¢†'©Ù>¬ý‘ ›¥âhƒ{cùÐnŠ˜÷¯À÷Ó'µÚ-;P‡5Ûàйn—JAL>cÓ”ûñ¤šÉiô…пôŽŸ’õÃX¦7óû„äîö;ãxÔÔ¢¸j¼/• !¤~¦˜Ð§˜3ßLqžWAãÑ–ôœT„ˆý÷„·ëBîÒ5ÇýÏù$¯Õæõ<(ƒôº„Â7¸thÒ¨©ˆU¥5δ”P“ %&¯‡Ö“œÛå?4B/Ð034®Us0 RÈw9ác[#VŸ3ÚšSTj²‰=qlFŠ/¸…ÿ™H^‡úÞNô9Ü‹×0­÷˰S!–²†û£ñœèrÞNz¿Q GϪýÒ Œrþ»Õ(BWâBŒ\Öð\Tck„UÎÞ­èàÁÂíØŒ½ 1"&xéÅJèµÀ" ±FÃ=S kÛË…˜m(+ÍŽìžqÌ×(3lV]!Al¬×á²_td´ÈÎKJ]Æf\ŸòmóÚC+§½ƒÄbt9-ÔVñŽ‚S»T¯X;¼£I»˜ìÕ`RbU·WPy—€–Ó}‚’q!¦÷¿Q?„¢é.,ˆEàœ3ãù Û©ÛÍ0-ÃÞd’ÙuñÊhXrÎð8S%LTÄ Ä°ÅÄɤ'E†­°i­)äô.ĘHí ¢gÔ˼ñÞ©¼þ±š§ô—Æ?éümβ¼ã­Ùù§üÌåp±Ó ,§±¡;ßë(uäàú›‰E:©=#pb¦$¢‘d3|W£¨6*–ú ©ºIq¾ß˜‘Z±752L=i5Vϱ࢙v Ýo/óØËèg¢Ÿ>ŽgEµPprf€uOëÆLßÙ¹t g Y¶—}çT,>A»ýãeXIëž–tC3DŒwÂi<>«å`BÖk­3Maº üʶÝ[£CÛÎdÛ5üG-a©-^˜É䌜(VÀ¤k]©"wxú? Á 0 (ÏÕ„zódœ¸9Ô!î 7h²œËŠ?î¯B¨tÑ’éqïš}ÿ‚F*î6`6Pœór9+Xºÿiª¾ï_Ð4)½fÈvÇ„ÍT5–5›† ç˜æ¨f6]¼DË}Y²ú×LqîYÝÃsó3…Ü퉙Þw=¯"É9 (Íb`kÂŽ.•Gq}Þnf»°ÆÜ@~GY]oA\ÜÂ^ÚVxô3»¹©%¾1}(/…•¡Ìlr-²`³ç¨È>ç“$êÞf“§Ï}yãM„!a'ÈÔyAF{‚[€Õ7E/òºÏ‰}q3Ìäö¯Ÿ‘è¤Â‹Í¸ÉAÅá•E2V"ýDš¤¹qÔðÎUÊ9ä0üa–y– ä3³¾ Óõa¢–›\&mÚë^ïs{¯;“!a¸Ê9ˆ[°2ÆÍ–.BH®^ÿDfè_˜ÃÊÀ¿_LˆF¿>¤Ëð€îï¼Ó$ñãâ;&b¬`íšœÇkÝb u!¦hŠ>Ë5˜¹ºè¶éAÕv„ïéLðSo¼Ô- ^,5fÉ—â]‘”©ê­izZ(¦· .[جÄÏtï²V ±ÝT6«:pÉ—¢‡©^.f”߬jÕ0âCø‚[”ŸÂë)Òè7^¤õ6C¦VßÈ Žƒýe‡£›Bê7ÿ“ʨàÓ‘+×T*,h‹ý[øÉNÆ’O2‰[&êBLþåÿe «¤+àmãöärïÂaùüºîü_L1ËT$ÑpvH>™W`N̈ñ ȃ·“©’Ñ›Þ@õΙiµ%”>ÌN|’W³í‹~A&I[i¹ªÌŠ´Ñw#–3!Ãe©Å|C¦+ÆsC9ÛØ‹R_Ÿ—ÏãNÕÃTí3oÈL%3Y`èý2<—Wæ´ðÃbe!}g2r1ÐÕc««£F”<_JùÊD H4æÀŒnz&ù„¶¼€×¹¶7Eý¤„£Ž¶ 'f6 ¢ˆ¿ó!KÏⲿT÷dJŸ'›]t±5å 4»‹TBxŠÖ±eMÖÛú’_uç­ðÊ ÏfZ ›¦¦¬h¼è¤sE¬,û-xåï÷ ª¥X“£0FÕyqkÍ£#Ö·¡zB 4b³·Éö¨$…H¯gñ -L;s¤zô.”÷Q0»Øñ·o C€Þågµ ü´[±N—5©QÒëeó\R €¡â]ÌÑCn)Œf:Òå˜iԙŤ²Ãbþc ¤A{‹6 ‹…è'§ÀL#ìÜ äƒÑpË“.¡‚É–e‹£ÀÍ™O€¦¡÷P~êHÉ’>–4@ZFoÐ.Muá$Û È´˜¾)¶HÞ½A±9y…ków+‚hÓ_ÆW3Á~2qHÖµEá<…Úúc® W óÞL†;%Is1Pî"KfáÀåÎ3Ú¼ÍN¾®9´¤uÕrŸp“äP«5Üœ{ûë±4àWbn0×D1ó8xun2`Ô¼Þ…ád¼ü¬ã ºÏÓâ`‰< ÃiþŒ«¸Ø“Ä ÷¤ùq3GÁš[VVu,áÌpcù¦If©îœü„K’ÌiÂôx0ƒ.ݰé&½S¡ú‚ÎË œUlFF‹È|1Eûú}ægÙHr}Õ.úz±äÈ.×R;•º†ÐüØ´y.7^*“aX|lÕLè³® ^âuËHÔðREPß$ÔqœxB&pÿY o|Z¿”y¦‰Äáê¨ÈxÊ€&¬—]¢÷Ù˜×ø´0UMï5`FuDüfSZ=Ï•Š] sµ0ž¢§AÁ: Ïp)žàrzØ¬æ  ÆÐ/À Áßs\ºlÝ®E·ÒÆÛH¦‹à+û#b~Λ6ª·ÙWh|RÈ ÅîfħD3ð"eÉd™^—ãë6Á]‰n^ Qn*7`4„•Pò¦×$”‡ŽÏ››Áa©¹|û—¥Pã±V­'6~½$aÂ_æï†<®jýã`D@}¼ì76iT¸ÖH.!þaþTŽÀêBŒµƒ”Èg¯9çâݳ¬˜DU_ŒÛQd”SÅø?D‹Þ1Ь<œ¤I,󃡛–Áä¼²¢MžFe­§=6î¼Êã¬ÞdÀ¸Êw@¶šù°Å«¿v”G’… ÓŠ}Fú0ÉÌZ5,ÜLP÷ ÕóάI<3®.nã‹V½ÌXoýò‚R´U9á ]ãó~¹úÜpYZÓä“ Q¥ñsÌéÇ¢…Å» ÿqEC´Ó·¦ú9|&ëõõ&O¢ýÐÚºá¢"n÷Ò£ù³@©áˆ99j±àÁÈ~¡%«ãí ^Z¬+»¤y_  íí$š×_ÚZJÿ…v=Š.¼Ó]`fŸ&tGF1_7Z,ÑÁ2qu.,â÷@bmLÛEOÆÂžo´(Ì C‚ä¸c^¡…µXÓô”£ÐÔ½¯pL˜5ºöò…¬yMNÓ½Òã÷ë÷ëb²Ëw5÷!é“§’ûÄ(WñØœÓå½À¢Þz¢ÀfÅÑ(€¨<††„U¦=i‡h ÿg8¦x…è!›÷'S2CVáå x¶ñÉ¡¤v‚e—†‹¶Ø¸ú¥Ñ„L©#ü$Û¤OÜ÷2_`iR¿´F*¦iºâ¢Ž¶GýÙã´û5O¿Ñ¢> Û¬ å"F–$†E…’[õx©^`)J‡­)оüŠª´ñù­äUϺ[n¬$EuÖua8qíTpãY‹uWýºâéÇrë"-C?@£È¥‰Pô˜D‡‰ÅWºh’ ,½^NèT;˜²J##šO¿3}ñƒëg,pc¢¤qH,ëá´µ™q§.9å~°›|˜ÇvYÌý`WJk ý‰‘oØI›Éd+ V¯wó{™Ï¨ËŸÿñ,ÄöðïéóúÔè³Ð›æxr}½Ót^X)Ìc"öoýï÷+R3¤£MÙÌäìeeÅycE‹ˆà†ê ýüöX%6ß(|ç+â³ fîd‰FÐKVcבÑ6ÍLûÑýÁŠz^^õKPÀRu4”3³±&Û"N5.͉•¢r²K{Q`Åóå¿·GYJ(d¼D½°Z`ùÿ¾ÛO¶ddalpha/data/tennis_MvsF.txt.gz0000644000176200001440000000150413162771467016211 0ustar liggesusers‹…VY²å ý¿«` Áõ»7‘ý¯¤ADÑ$ÝEåÕ}ɳ7ÂàŽp'¸3Üw»ÂÝàÆ øÈd føó+B €‡Èoyâð+!C’&iõÈ)ò©Ä'’žë C"¬]5v&fH 2u.8T/NýCØprt½‹@":ÅÆÅh3$]Ú´(¬ 0ÅÐr×´x¿©Ã—øâ‘@øhqŸNa§9´Ë"ûÔBðå´çR ã%î!#G3àg*~%ó¡«§qëÔ’ù?I@ûhzv6Œ‡zJÙéÜ _ݶ™Ñ;§‰¿¦‡´¥Ñ´$ˆ–ððÈÑ¥¨9Ú=ÚBG$à Û d%EÅÊ›TØ#ªZÞ§˜N4)LœQMý7ö8 -• âj·0¸ôW¾a·’*üÖ¸ÄÛ°Ç¥p“4¯ø4É¢­æsäÛµÔ Uf†ì“+†Ò„®¦Q][ŽØP½ ROþž€4Þˆ¡ÙgÐÔ’ÌÐêgÏI´p¤iøcõ.$³§«Ú0RîZ iZR~bŠ\ç_iA£ûÕ°a rz´iÑꥥ5¥¼¸‰Ù*ÄüqÅpq\²£G£¹5’V[\,.V9a`9 ÷Ê5.• QzqÚ:I \ußdC‡TÍô2`ˆ¦–¶×nrªƒ¬òÂK~2<»±ò:L—£g gHÐÅÝ´E3¸ð2Ú¹Ÿm£¿³ƒd™ÞËÐ9¥RÌѵ%Œ—€ïÓÛy¢Ö®ÙöJY é«&—uÙàAw 8e:ª“{ýÐ4T¬§ý"^ÑeC·Þ§¸èÊáöÓ§ï9ë*KËWè"‚à^YÛ¯V«ü=¿ øà (>¸lU'r3ÿ4$\²Öî§0„dÙì=}Ò­êÑ£Ålëódè7œ`§WtËÅi¼àyióó¥J¦ýdx¬‰Ë]”Þ=*<R|ùdW06ÄݘóX]u:ÛÄÄhÓ{ ø%n¸´ÕVcä“.·Zß°û­.lZ n»q@â¿§7Â*{zy´&ƒ^œäJœßãâ7lXw†íÓŒî_õGÃô ddalpha/data/wine_2vs3.txt.gz0000644000176200001440000000540713162771467015603 0ustar liggesusers‹]Y[–,;ªûÞ=ŠA.?¾ï$jþ#i$Adö=kí:•aƒAáúëÏ¿?{þÆó7ÿ=ÏŸ?ñcýûÛñ¿óïïÆÿzû÷×;~±øe<ÿ÷ŸnŸ±Ÿö¹ó韱žÞ>ë9'>Ü_;ž~›†ï<~4ü8ö¸µÇ¸Áˆ/úcx±c üηڕk`yÆÇv|gx°ö³N._i:Ö„õ‰MZËOX^`‡?Ûá+ÜóûLç»å¾7Öœ'cáPÿlØ?öûXg#žÍõ¬QÞcqÇ·ðý>gÇ›ÿ`9>ÇY÷3?Û›ÅkøXGïX >âå†Ã¬¢«\Õ°9CÇ7ÃáþcÜ/ã'lÆá Áޏ`ƒx!"qÂ7o|ÏÚGï8dãIŸî¾FtâRfK9ñdúÞ#®?ßµ¸>öDÀ˜«8M>µzÆêž1S¨1¢&^ÆFáƒl¹ 3C˜Ë;ží8ë:㤤;¾: 3¼ïØñª¯Æ§íg÷“`í"êâGØŠØ ‡´Öt¼HôÃÕ¶Û³ó_8vüzÎRš Oš<$Æ@2+“0Äáénâ}¼zæ? nOaÖ>ß¹3ú÷ª ÂúPìãÂŒß2~aràô£“÷6|ÂâðjërÓµ4wÀg`ŸSßœË×*W‘ùõÜ­XvÕû†»ÿLl;-A×_f®c1ÃȰñM…ý°›qM¦ÏÔY‘ËÞŒ¬ÓÉͽà_Êo_®iŠ jÂÃA„†xE 98Ò°>¢÷âù<ˆzø1’ªN(ÀŽ:‹oyÏÀÍ 0¬†é8YbU™À‚u“Ûà ¬Àx¶«<Þ!VQäG«MõÂ:À3œ¢h3>µº"(€u²J‘*²2ìj_“¦’Ùˆ{¢ÜZƒo,¥å¢Ï¦”¯"ŒM©‰€x÷7WM¹ [E«¦ŠkâÂáU_± Wß®°vÁˆÕ7ý¼³×– c*®J¨XÕSEŠžÛ$„bÝÊ”3 ùP&æMß—¿å~VK3íª¸ÉâËÒŽ3ùJ.Fb©QXGGœÕýdŒ@ªxuÿ¶3¦‹þÄ¿VmypÆœ}”Œ² Ð-ÛËüg99–H³„õàUaÀ/˜f¦ñ"4ÓT™ê[\Š•ôRg‰½_ÀžgƒO÷sZy:q?KñéRŒ2â$ä,%c>GÉ1YW{Æ;Ý‹^âåÛ2äVMX#ß¿õÅ&B°qŸNªŽ´Í4>ñÜMŽ“,Ëæa[ ``_¥›‹#½•8GÈP¯H‰!θD5lE 6/v ¯Þ”±M26Ðqñ‰^çÓ $ÞbÓý²ivá¶%X˜nœÜá1„%ò&ó×ùØl­öÚf‹UGͨÓzÎøó|,8SŠf[/ØqáÅF‡Ùbf*›d¦ÉLu„’Aß½ £""ù¦ç‰·±êà,’ùëzV™©þè «LʇQ9ä¤7ÇÉœ½mVï'Û·«:ªû›0šBeFØ{æŒbcåÌš¸1ùÉ™Ž27)ㆠDOXÕ¾¹µ'Âð¤§õvvX¾ƒ06òg”qbx¡ͤ‰–³…ÒwVj˜Vz½bÎ#oWˆÓçK(«¨‰‹±ÕI59OÉ&Òí ‡ékRp†#†éû$*^¿£G/bì•Ò8tSC@Í(fd€yz÷`œ¬qŠ1²Þ1嬓þúQ‹!Ø~C­4óô/bXà3шáéü-s¢m‰ú„rkXöƒÍ¢?r5\—XÜoÌ“$OPzK‚à²S¦Yb£õbô9Õþ4lçømߌ«¿ KœÛÛÉXøtÙ £¨KêÑO—v 7ª•(c %™”ruBv¹6iÕ§„‹§ê!µ ô®—Ô§U†’c}0y«Fù˜êºýZ¦¨™ãËŒMàÌŽD±wttÖÃÈÓJË‘Ìþ§°©µ9%0^‘8_3sÅðd ˆÒ%€áVUÓ í“TnyRæeQ|·0âê< Ä”s¢†“0½j~¬Ì¼(BUŸ×vÄa[9Žph⟘ø9F“Ò4Ø›Ä@º¹…Fûú<(¹qÊïyêèçd¸)ÙqEv*WSÌhdË™ƒ''ÞõúMCô¤Lö›Ëï(Çâ¤ßβ¨ÅÛ9q7)Í@Efk¨¹“Ù€Ó¦ÕZÞýE0\k*é}r©[‰K„|HvÊne–‡—Û#·\ÏÑ’rY¦¯zóK¤„‰„ç¡JŒ­ø|a¢{fzŸ—¡ËJ (Ìlq„ö­ ò~„Uù´Ÿ)?š\‚5TÁé13ÈfŒÐ@M7¡¼ïâ\ÆÝ¢$4Ëžà$³B$ vÕŸDã«­N%¤9B™â˜2“‰ºH×f-µ]Îr<ÀÂY[ÔƒD÷5o‚8šŒ·_GÔ®°u¯õž÷l9ñªqõ“×B’ްNȲòx1#B¡îÛyxË„ÍóNØÇxÁ|J¦NM®ã½Ê$5GÊœ¾'K¨ÑSÜùJbØWìläõÇGÞ•!ºâÀ|ª¡€›wkgî`¢ 1g bV”¢ü*¿‘:sŸþÖz©”§¨—¯3 æÈ™:dÞ§ÛìÖ7H©}¨‘°ë”kñ¼­<›Óh’oÕ¼*h€, êm´é‚_°U³RËûÆò±$¿Š‹•_\ÐFèöÅÊ…—Ñ’µ#Ï\ó‹›c-Ø]Ú¹ÒwÏŸ‘É «ë* ddalpha/data/crabF_BvsO.txt.gz0000644000176200001440000000162413162771466015726 0ustar liggesusers‹UV9’A Ë÷ýÕ4ɾR¯Ë‘#'þÿOLœ‘ì–Dð9 5¿~·?Û÷ïöý·ýøÙ¾¿ÖËÚ|ÖãµZ_¯žßz³¯Ó6¬çåÍ,¡•iMlç_hý5ÿ³ü þöØÇmŸ°GÚ7í;í§Ù•&óªÁÞ¯LÄšÐHtÀ·£¢`)@$°ä¿Á°aø7Î:*ì2&2šÁó‚}Ãý¤WÈžsèªi‡N•'{½qZ×@e FÄð îòÿÇœŠ™ÍQ _êõÖSåàë( ƒZ/²2Ç0ÖÕ;œÆP‡@å:›åfLU?-ØìmìUŽL< ñEIóŽuí]§S|Q>Xdv½´¡QG Sž¥g§v²#ˆ1Qòå®Ec™Múßz¤ÝTÏ@[³µº[jŽ:ÔlG«Á(Uy¯†ËËapðR¿S]4KC—Á)U´zC¡kâãà’žñ`½YÀ~€) ÌJ6«x™k>o¥D‰è]|Ê/J)!õ;·,,Qè®CàÜ­)¨M¶Ž‘±‰77”²ù0/J;ö$ÓXBªãÎ¥y7Nž7G+4ÄkC‰® ÇϭѬYšy\’rJËÆã—óð† lÉl\)BC s"aÚšg ¥x!€Z>‡Lïòsj«À;øû5$"ª5ƒù§ß~O›ÜŽjôhµY´oè¨*‰úR«çù Á‡ »”.ð#ìâ¤íÒç:-º< €œÄYG€Ì¸¼H5ô.C`Àµž÷k¡£Û¢~ê Cåk RP÷|‹¹+bÇ”l‹r¿_À8æX÷k¡S3äà<ªc¢mÐSðÈ늯»È0½;ATÿ ¡ ddalpha/data/uscrime_SvsN.txt.gz0000644000176200001440000000221213162771467016373 0ustar liggesusers‹=–KG D÷s ž@h²›ýYfá¬b/Îä 9~^±'$H36YÅbQßí—¿ÿ²/Ú—o·ß~µ¯ö;ý´n?Â~Úöû³ÎÇÍÓí¸å¶œ–Þìd³Þ­7~kÛ†[?ÃbrùøìŸ4ÝÜy·Îӄ꫇խ°3­sT.sۓ볉 ÛÇFÚ–œæ1ß~Œ§”PWä&Ë™~ä²¾SE®e‡Gƒw«LýØ\$‹4ý3êÉŠjGEY‚íìTªÞ4'QÏRisâ>pçwð M W­›/¤¡vIµ‘1çn;lX_ÉNEgYß6Éãs M¦8ëoM$ÐgŽ( ˜#xuÒ­ >`?;?³žf39 >Ev sìi$4‡Òƒ;þ¬V¹(–S°Íb‰Ã­’6 ¨ÄÅkâ‹{Þò%¶A홳¸sJt ›jæjDíQ­¥•J•hàP9´å±­NÖ1Î=ºïYìR š"§t³)Lg[žL•ER÷%àóÍè I•ý 0?* sP¢/îòê¼Z=ÏiQÝ ƒ®ús†¸•·hä¸AÏò— _3È|ú“] KõT?a–„ªÜÕ> ðY"‰bI¬‹â~uU![ôˆKSWt˜æÎz«ôEïd1¤¦`B$>ΖäC]¬nÜ‘$,Kò<­qáÄ”ç[Û¥ùy;8nO` ¡«­q'«¿¬4£àkìNñ¢r¤Þ¨†€N’gLà3–Ô‹˜Dq//€4‘Ph $Ò‰ISpĺCµïˆ€ºê\Ò“´ä&j¯”À—Pdh _¶ÔP /.·2¦•`'â꜊xíª¡ECÄݪ™!¿›Jo/®úY¦UjF‚qGä0 hüönB‚d ÔR¿R?å™ÕW´åÕÃ6T—ë§+1Ôx/ u(ë‚©I.ß:ŸÛN~“smÌGp©éBÏ =})‰JWc+àªS@dU’oÞ©®ÕPe™ÃEΘmÍô,_¤Û;Ji"ÐUt/ Kdi`štM? ¦ÝI¯EˆxH7èË5%ý*z4‚ëÚ"éj3\%jÁœW»3+âÝ3«&žø3®ú%>yœ,žR`F=©²ä³­]4¢ß/´Ë°3¥qÙ]޵îéµgW}Cw¶‘p0‰ ª±‡YjïœI-#T?5²¢•‹Ÿà@¡žï(:r Ù›¢²ÆCRG\ò.Y=Y{×S5k(ÖËíŽâp—± Í ¼ãÙ[v"b(lȶðôzgí5x×£¶tI}Ü-¥¿Ò”Ö4[Ƣĉ’†ZqA5oª]µ8+t18ZͰ@K‚Ú1裗ÁÝ­.GŸï3+˜¹~`¥v™~ÔÉ8Ï]EÊت&Œk±2•”Sk f“‘”¹Ú_çöâȺÚë¡Z7Ì3™ÿ/´v«ª¿³Æy²§Ö‡îröü þT†Ÿ^ ddalpha/data/vertebral_column.txt.gz0000644000176200001440000001176513162771467017333 0ustar liggesusers‹MšI²l· DÇÒ*juã²'‡¶çöTû_‰3À’Š÷_Ã"A4‰À¿ÊÇÿýU?ñß_í¿:ߌ?ôeê»ÿü9Ûó¶O­ÏŸvžY>ý}úþœýÌõù¾OŸýûOýéŸòúkÏ[?õ|JéOמ1½fîg³U­Ÿ¡•çÓ§7,ïxÎù|Û3ëΣeý™ãÓûÓŠ¿Î®eåÙK›>µxY?Ï*Ÿãeu?­Z0dØOYŸõœÊ*$,Í?J°¢¯óiM¿yý„áÌÑž®_ŽgÏO[Þ@_‡N«¯ÿA@ï6ž¶|Í¥kêÊýÓ:W(ë©R‡þ27 Û³ŽÕ•z}æùè¼*éB˜ÊnmúÒ–®Xž#|÷§övš_SŸñaÅ2ûc‹{êêße¥z³â«HŽU}Ž• H+º›m로çL«KIu:¸èWÒà¶­Cº´>Ù¥ö¾ø–ïs¬Z‰âU+ìTdÈõ[2Ÿ]t§µ8¯{Û"ï黸këÝ–OÇFò1;† 2?£ÛÓ¤¾nSW›_N6ë½âþèmVíT¾èζ„¶¾«ö³|ùn}ÙæVyÕ§¤}ÙbI Î’]ìÇNmé‡<±ØaE«KÂnûƒ…”5䊲ºT3ŸŽV%³½«XÑ2vµ.6¶¶«Ö<Ô‘´¬/…„Õ±màòN+A[;lt¬½,YóEÑ„üy¾=ýк$”ðC¯·[ÚìÛqÒžî.7io_l&I%x±µL ÊHŸ–fµI;!;þüžÔ„¶¶zŠ­^»à±×ï˜N›ŸæSåÿP6) YßÜrXòm=lùͱEíüF‹f|«iñßg£™n¥*Žþb§ÇI².6‘WGl+˾1ì5(ù  ÙNwtÈ+$¼”m]œ«Ø‘ºH£TËÓ_;Ï o=¶#K†çc´™xàÒODO³w­tSÝ#Ü¥û~r>ïZpóžIV©vú¤f:È«CrÚC¼bØ‘"¿þv‚ ¦ò‚C˜Õ [a³ (uáïv~Ç¢×T4a2¬8yhh‹yò@TⳆ¡ŠÉG¥<ùUŸ©q‰´e—„@ÁÆÀûtíêïB$ެø°n¤¬8ß4 ¶–Î ÿ H–ôä˜3Y¥,¡Kc˜$lûÌ X‘©L#‰Íä1¶Só/ÃIÃÀ5‘\„€-’@ªÀ¶ÿ³¬m«~'@´»o‡¡X–4p»—ãpdr±úp¡ÖÉ’Ù¥Èèl‹lF'ÓylïªA#ÌXY`Ø"­ìÐé6âE]ÝP¢ýÂñ–«?—wÃGªÀsÌ®w4þmo? ^6ôKÈÖ“$Nr{{{¹f.NƒÖ €f…†MmÅéɘ±ÓM’Ú&5aéC¼Në+D$‹Ñ«ùÐåø[#]ËÀ9¼V[(’âY­Û‡[vóïô—³É;òÕS3kÿš‰l¤ÄÛ"¢;Îs,OŒ-øÖÔV­àɬ>lµÀdC©­ú¹ ë¸Ö _ä”Ͳ”Œ«àê`¬½F^ÉeÞl;¬åœÒÀ|'nK[q{/|T@Ö-™NuGÔç#F6BcÕ0[à ÊmXxËvq[šð4l?ýl›¾ÕXaÛÏÜ)BGh(mÉým/l7Œ³Õ–>üÓE:ð8¹Ä!\Ø[Œé€i üùú¸Ÿr“ŸØÎ-ƒlæ”7ŸT”ÖúßWòDäÂÅÊIQ «Ð‘JBY¯×„d3±ZeYE”VutZÌwÊ/¿VPèæÒað^ØÜ øEÖÐÙrÊ026›@òkW…Ð@‰ì6"‡é–KÂY…Å ŠiŽB~‘vۈ쳸{I‚*O”Ž-ö²h‚=“ñéUáˆyù˜ùÎ2t*H³.¹ßÛèî„pr™à  }taHE»<¦ç#DÒ½@×IîWdå-ŸÊåì÷ΧËJŒÀ”¢¥‹cÔïpcAò¬×‘ùÚ9lYh}_ƒk—Kyõ2×"¶’ Žf—XÔ /ì¯ÍLEæûv„.à¨\€7ÙÈÂ{±CÕDvYTCÇÖöÚš˜PØEŒT£FÖ E:w–t6¹²v:ûÙ¹_®TH_f f,’¬Ã¶ 4‰*†t: lô2ª'#jÐá…9âtàW–çÉk ‘QÔm"1ùÇòù²vú%`;ˆ’£A²ïÄö3ñÃãôrÂylY;’eíVs8Üàå5‚>G]‡ˆl6€¼ý tÚ|BÂÓiØv†HA̼e¢®ë2&ß¡h¶ne è˜ dP¤éŒ “1âVʬ·déècD2È%²è$—ŸЬ¿Ò¦E!e4PÐDa\np÷Ó«\(6²O ‚Ö´ží¤îå&‰ àrúsÉÁ Ð7xL[?Šgh ãǪcã€4€WÆ^Àɺ £‘ó›ÝÆ Ýåä6B7f–3~-NFÛÑ't=\WØè`­–d @½=#·¢†‘MÂÑžVÈn=ÜZІ.1²P™ö99|„»Î6%œ–ušs“7iB»R©ÿ*Q~€²ÑÕ˜N•æãß ç¾›sÑ´ï8H&áÜYƒ˜ ˆÚ››_t?á%ß÷òO¯ð_}Ê„”Ë '¯ žÌÁ«œ~ÿ ¤FÑP²âšø‘‹iIF Ù¡¥Aу¨yÝë , þd{ºÈŒ–ÃÉj1²†òÇ$ö|o>#²#7îeM8Û‚0Z½ß› ^#p‡æ¹ô€bEº³‰—¹{HOÃw¡x¢Ì‘® vÉP ­£íè6Êò÷r>…ý £²²WQ|H&Ê×ÊÎINã;…¾-£'³Ëþ=-ÝŒîPA«ce­.sFÝNI“DàâÄ’½ÀÑ6=ˆ®#CÌ, ^ûÒ"?u—¾©¼Ú;a|èÿ¸ž^×q7Á"„Òÿ 8t~NÉ ÈÌØV»“Fj!”²ÏЬRìˆ9YÊ´tŒÒ±zï þ›QЃ°‡Ioƒ²:é,¨A'\öÒØ®ÙGMx#m*¢J W¢óãŽ[ÊѨ§*L:Ä»À'éè€M8•E˜8¾tðìS-3#Æê¥óãdÓð3ùI»]/§Ë WZ$#û;  ŽÛ e¯ù,ZŽ’æ¶ó¬ÛàbgÝåôJZöŒ—“Æ×´HƒH³`Ö·åëIµîíD@ñ‡õ½£½!šÒ,®äÁ ¿‡l=ü½y°×ñ‡}r]¶JÅ+¨GDžsû2¥x · 3¸»£6×åzäðŸÀhÙèSîš½t:dêÌ×ÇUœI×Üà7mäj„]?vA׿ý*ó¨UÓ);&£LBôN]gºïÂñ&T¦kÙÅ=XX¹Òï¤/þí0é Ýß#Xíη„/TÏR¼:÷¼$¢º²4ugËG:MR( :Œr~é¹_ ]°mtsä™6As¨È÷Û:5ý á6­ìÒÁm_˜q¶vèÆw¾ ~†d/G"›ðf÷a‹­»œâàXi¹„ûD%w[´M¼[ƒ+ÉÙÇ­ÝäÌÕUt!U.ÛÈ¡µàÄÖŸSbAé ’b¿€m.½,éª"—á, ¹¬?Ç{Á{X\³™tÌó= hÏo `bË´á&'h¿.ÅM¢v…ÍÍ“´{Ðr›¶â (Ç{“Ρz]µBwv€-áÖ‹rÀÅŠ=ðã ªê{ÁE€éFØq=ÃÆt £¸«á+ Ú#´Tµ;•ĸˆ3£\Ç_#c…¬ûØìý8Ú }ÑÒ:;bF@ËÎ5È"ïÓÅh@”_Õ-‹ì…k)–ÅKhrpåšr”B5Ûp°î}"­úˆ›FM07…hÁnª•ô>Ѥ¿!³š–!£Â;™{7€’¦s_µ¥TäýÇÍ<ù™4,”)Ö.$©îGÍ^¬ì!O˜øo ˆ!•>“­O¨"IÇÆä×Íçå¾’‹›k¤IKZˆ©ë8MËú’M†ŒƒöŸ;GÖ|4Qt*¨Óé7ÀïóB*Wyë¦AF ÕhyJ‡"AŸÉœvBÊ ®èÞˆ8!«45QƼ9ÿÅ•êÌ~×¶Oðµs™=;¨´¡5cÄ„àovô6ÍñÆjÓ:ìaáJ´›¤¬Y¿Èî ÌwüÚF@׬wVÔlª80ÜA·¡qº¸ý”/jT]dy(dÖíêÅ8*üÌéø.}Æô£;г‹ÃàCä~×ÍÎ@…3þXƤä;ö!¼6êª330¢æ×gPÚ¦‚‰¹{‰&³êWô”‘.Ž1€‚²vPÝ}×NK¬@ {µ7f¢Á½ž“]ÝÒ ü˜çYt¶ñº‡ó˜'0-Òy3Fº¤“Áè¢1§,Ñí½WI vÛwܧ®èsó¼I>ˆÑ’Ïf°ïŽÔ}3gýPW'#º{@êF‰Ë}ì}/§´[ŽTŠ /,Þk˜$1Ÿ`F›Ë!-•F¡|@úA)ø2^ý2ýÑ¢}ò¥Ä$¹ RBÅ‘uYÛÀ§1cÞ?è1í‡@0öa40iˆqáÎLÌ¥±çŒH=ÃϘq *ÒÍ »vFÐí ×­k¿“p7û>´ß¬K¦îåýÑ„–(BÏú‹f|âp>­ ògÐ…z¡YÆÿÒ ô 7Oc»Ùý PÝAÆß•GÚ{›ú Ñ#j¸²ôÁ'¼Š²ÿØÓÔ^Õè×"X£5)d*õœ7Ü{î«ÓÆ 2QÏ蟾~r=YzÝH6),v4'ãýCj>Š >>ö­„`éyâ/ù^d0£v–+8gì&áx}ä¨8&õ~Ц|1¦uPÈÔÆž45D΀¿ÓæÐB3tuÕq¸¢‹Ê ÿîM =¬«’~¼"˜é ‘6:³¦ã×>×ÈùÀhåÔc2¡žÑÓçV†D§5-ó%ú |‡¸aML0€Âþ2¸™’§‘i•NhE}çÜÔ" Ž{qoÅc˜±îôZš·@6^Fû›súõ#¦InðÚbVÀtºò›ô4™9çË#uÚ"áŸ>€¶ìëãN ‰”øéŽ{ ÃÍ/— gY1'—ƾdïPæŠù¢ªYP»Çã§ZZ´(ú—Û” º²-z¤‚*„õ^+“/‹ß؇[Ô‘å®áp'ôxióúu@ Ð`láÁ¬‡«—ù9~¾;•a[èù¢Ñe‰¡µ„£Kw3æãn²b#½1°^Öâ÷MŒhÑ2;íTÊ Nù‡}­‚³ «Ô|®QÃF£dò4æ¤ÎGMþaWða,ôss´@˜q ~a‘RÏ—ˆ¹<ß¼Mè+D'í|yYÙt–IĨEóÚaFì3¡U&¾ë^V‚(~é§ú½€e˦’oA™ÍÜÃ4Æ'•VÁ?&G—Âæ&îÎáZO7,…Ž70/½?—µðHC®ÛIÜ¢¹vàó÷Œ•ºìK=öi;Þj5Zl- âɾWÑŒ7Ë#Þ 9xéðƒ‚_Dt¾)¢óÚ°VëÆïþxUQë/g#jŽ^3@ô±J ªÞKV˜®}i‡lnEÇ8Ñâé_aª{µæ‡«=¸uƒLÕÀÚì¹V®WýpÌèš9.ddalpha/data/biomed.txt.gz0000644000176200001440000000300513162771466015212 0ustar liggesusers‹UWM’4+Ü÷)ê*º~—˜ûŸä#´ûm&blä'ÉëOž?}þìùëÏ™þ¶gíø£ãÍþÈGZÇ©àt¾ëÑ>âÔZü/má'.˜öÎCþõ7N\ãtÁµZ˜Ê^4M–’AÞ}@X.BëèøøTN²yÍ‘3´’‡Á6E+ÆWb8{‘é³×äáÖ‹VÅêdJD¸/Ä‘}ã4vÒÛúÙBù°Ìœì[Ôè¶N{M>g²rÏ,#,ÏäºÔ3è3Ž}gúäa¿¨²M‚\ºIÓÛN¡TÏŽ›ìä¾³Åù®Á›)Eš»Cswld²k¹Æ×oœ'„ÒjoÅC=¥ÎâaÉÜ<É­ZÃ-¿£R?ì侂æšà¤È½ç|ëdr˜¥ð±ÊÖ¡¿sPH y¿t¢êu Ð»<¸ô¸Žô~çäç&y™sÃ/YÍζÝaÂ>ü̧QoÐ~ù\%åÃǘÝñ¦Í®ÏûÅð3av©OÿÙìGúºÿ/ð ¤ý½_MÜVl/©åëû)ÅC{ëó—-¶»-òAËŠ¾‡«ÜkDåí•«ý$<­ddalpha/data/hemophilia.txt.gz0000644000176200001440000000106213162771466016073 0ustar liggesusers‹mUKjcA Üçì=è¯îe6Ã\Ä0æ& Ìí£–LpËY=ÓR«J¥RûåÇ÷óëûåßåýÿñr÷ûçõéßÔŽø¢©Ïþ^Ÿ=?åÁС[€Åf†Ï-cʱ*š´J‘çŽÜòÙÖ9‚íù3òOúv‚½¸ÑÊçI-? Ç—v„È\_܉*Y¶&î‘$ÉØÏ‰t]½;_ŽlØG#4È —·üàçÇâ¹÷%I“aîÌ^nXÎÕ:<ßv”­5 (u¥›—”ØÝíÅ×»((X^‘F*”Úºîn˜–O¥r³0Y=¹£ûˆóÆyè¯nxóPü!-pêm¬J8惸eGìvºb]’xU’mƒú-di{cddalpha/data/ecoli_cpvspp.txt.gz0000644000176200001440000000246013162771466016445 0ustar liggesusers‹mXË•ä0¼oŽ`^K Ï›DçÉZ”(°f/ý<Æ (Šæ[®o½¾r}õú¶ëïŸÏÞ×ç§®ŸÖד>?Ò®òˆ>ãy^·ýòùKMbŸ®—¦-ö]‡äö·­®§¥$UYÏëm[ok‹“ú² 7¾}~f4×êÄÙn^Ô‚çÇ`ñ#&òïµ»¸ “hõ –¤˜N,ü¶¼©‘™5 >”È–NW?)ÇS]bßlIµïÅ–ïã(W²ã í$%žó8 È GÖo3@WGA¢ÅC…¨ÀI½OzÌÁƒâ ëç³¾(šb5=&E«x„|Û0I÷ÃÕÏqQ ^öC d¾[|5ø@Ô‘”‚€ÄÍ59¨ ÑM{%´ðmP¯—-@¡üWm4¢‹C¯™ÖC©²ÂÌrã‰(%hÏÚ@U7½  7È*,0sõu~f„›~åcÓ\œv\Æ6 ½ÝG½n#•6Äæ÷ô@Ú‘Â^ü{ \qŽU\lB¢¿}ÚøÓSâúßQîP²l(¡hTr99$‘y¼‡‘” Âô1Ú(wýâ;ÛvpxMMb7YÒ%A¼Á³:òtHä#)@ÝþçxàtæºV6Qö¸¶+€ñjôådG& ­ÝŠÿÓHu8¹]ò¯ªg©©gfã‡ù2X7$ûl0‹É‹¤%×Qó¤eŒ¿Ýd;?µO“M9žE¶7»À+)ÁÌ^=â•HÿL©róA€šãøåS··1T&‘Èó0*•¬©1B«ošÎb…äN[Ù•3fyÌwÖiÖN•°Ú$&XwFè^o,÷þ7~zè4. ¨Ÿžã Ù½&Ž- 4µ`y;ñ‚‚Y窱{O€Ô¼ jcŸUÖt×ô:»\_F§j ¾™.NÜ]Tmx=Iî1+– Érv„û+Qs×K—ƒ±oõÓ !Í•¼$¡–Ù0­sìAU£•±ŸD6f8/±ÈÞdsÚ êuÌ¿âk3h÷ž¯Ñ–±O§ÒÐ| e‚ËlB%2ˆáÉÉ;n,]\%4¤ù–HtœsK>Ø{b³Œ‰“Frñ˜Õèe\ü|‰ÞÆÓr•®©ØÉ"Ø&®+PñbAŠRýÅ¥!êÝwª˜¨æj òÇZþk}ËäõøFtùhèiø“k†aÕÒ‚ËÞ¹L_³sÕ+yœw¡;Ëy[FÓHõs­S–˜D!©C›CeþÚ‰ž BÎR,o¾äÇ'©$v?,ìúwŸíÅ <l»*KtmV´ b’¾^LNp-IÉ@^4 {–ñŸ{:D£ºÁÂ{YÝZëÅ —ö2FÉŒ«Ô.Š:ë×1щcèÅ*lãìk~]2ïŠ%®÷w1XTŽùۻʢ~ž„c†Ã<Ü—…É5YaAû|™a¦¸åúþ´£uÌïc…ŠúAi¼—ЙqÛÈsˆ^·wœÅÔCJð¦¿l{œ0ÖÁ•É«žÍh6¸ÄÒoõ]зR“4êÄÍK¹·‰ý‘‰Ö‹Î¹nR‚ФW7<“omoªô»sk‡¹„œëÈî¾Á!öävøÖ¸xyŻμjJ‘:ªÜ~œù•xS±íXÍfAîDqu ÇŠB«²Zšÿ›HÓQ“×4N”YÜÏÙ3%e‚صT/·§¯scß\Uqˆ^«+™‚}×êcò¤ÁÿåĵÙ9IÉéäƒ7Zž]×Òeï\ª±+Addalpha/data/crab_MvsF.txt.gz0000644000176200001440000000335013162771466015620 0ustar liggesusers‹UX;’-©ôÏ*XAÇAˆŸ;wâYc=gö¿“Qf ªÚé¨C¢/R"úÿ”ÿÿ[þüSþü[þú»üù¬ŸZÆÏ,uÄGÝ%¾bm•‰5€öå/õýcñµ°Í,V¸'VG|mlŒÝ-þ¬Ø‡õUV[¬æZ…²ß6~zÁ–X¬!³¡¡Åo›ü•ÀˆÏÐê±ÙœøÒ“@BO Dðk 6Åöd‡õ 2¸ð•‰V”ÇÏ-(vT8µôø!;ÆM˜æ  7@ë¥,¿ iKuöc…›S’1†²ôæ6€À!c‚° ÉAô)£@›TW„ê¸Ó~¨ÐµmÀ­PØá›)sŽP«2³K°Õu9Ñàî,„GÇÚIJßååÀŸ|ÃúÛXxblJƒL³ðÂÛUœ‡‰z ´å~ ó ?\~±˜&Jªð à€šÇöPº»‚òn¯R¦¥•ý+;[r`BfE`@Y‡[µ8óreVº‹’ºÐVj*ÔMN0 SŽåß @}SÙtäý‘±tbÂq–Å8R™ùð/¤˜Ï”atqB[À(òøS—ê¡¡¨œù v)ð#ØP0%Áîƒ޳p²Èoh)Ÿ>èÀvS0¾]©¥3vdÉ·Hj¼ ¦Í!µ¡ŒmÁ#B²:b²/ ÜǤ¤ñûhlpðÆÖò,‹ÂñaÈùVÐ[+AHìþlxpœƒØBÏû¼×Å^·§yà`8#¬Û¶l·*nl¤@;,à²f¨8%ÖfJtHô+ájYQƒ©B’j_êõ¥³{ JÕdÎßRRSÔ!jú¨“Õ{š =¡™äõ=}| œØ/û/†2Ü­)ª%hʃL½þu1ÃÈáB]Ö9m¿ˆ¨^‰qH*2ÓèêeKú2+Yj^þHÎWªÿîêž–d4uÆ$ öb¿ÝFn4èqñ{årŒí¯vg-up[c§ŒcgëPÚ²úmw¿´ÒмE»[2ÁRÏÏ"ªä)ÅÎÃÓ” 6Mh%OM9¾.Y¦ºÄ’2¤ÊZå…VÒQ“[Là—ª˜âá×UÀ$¸?Rœ^•£dňKÀŒã<ÄTì³ –È=–7˜ÅŠÔƒo:% þK™fcë Âœ|”и؃·…'ÿTAYÑU^°Ò»BPGrB‚bÄ"ŸÒ±Ž}rëà í°á´Šl°•ṎìrŸ]–‚nâ8œ¨‘=q¹U€Ôð^g6’<Ïz?ëãÌ‹ë1'j~$SÂÖIk´É'€ò"ÐÊ–Ñ`JþCöbJÑžÖ)Ñ,I lP‘UšZîTd\&?a}aû[jÎr´I~÷jR@ºëɤPdSs$˜ÉŽ®ùî-“£a\í{GÀO=¤™Vv’2’B–_ôŠÓ«ñî¹¼]!y³Ê%B¦™í@)EÞ®©ý MÝ;o“¸pÒ圭W2uΰ܄zk&'ª {«³»3/6¨áØßLü>M‘™­3á×Iáaÿ«ù޶-o×W@GÁ§ú¹u] Æ¶é50ÅKÕsÙu/-°’Ÿe±G†ÞÆ|¨ç\=¥÷`A¦Q¦!ž¶NKj×r|{©ótAÓ¸H5¡ É×ñ£pèæ;m1î°Mnl¹‘Δʲ‹q aD’{ë]2¼¾ÚªTXŽÑ®«Q×SW•Þ—)³s†[z7u½1?œGkáÔmy]P‡Ê,;cÈ:9{çW³]Ræ2ÑBNvð¥ªïª6i„C#3êùt¨ªl‚ò|êYo?hB‚8G¢õüšz`Q‡–Mõ¿òåg2íz˜ ¨×n5OU3'Až6-ßBgk4íjYÏXXý9=eÑÅ ¥zx𰪞dïyïVñœÇu¡8“ÑHãã\ÅçÁù®{Úw*ÅUý]–>åzGt5_£þªÊߺ›ß¯£gy*U걫LiqU{Î8E9çK½œº®^C:¢›&(,Ÿ· sî_•räR›ïÐÂ÷ïCò­Å–"ÔåadÄívÈ’ãýú²ùÎc»¿dò¥Dv;/䦾BóådÇÿD °€&»#ÝjmZG­mY¥cz·N…ºÏ7ùÇ^”€ð¢ß8]UMž–“Ý<Ô"¦à3îÃNÕcG€–»ÍH2g8Í29 N%¹Ã¼½ OŽPHªÞŸK¡,LvŽ÷'‡EGIÙ’Ëõ `Ló.‡ ­h˜M½©·ì˜ÜÆ8 +³T±G>¾ei¤›f'Õ/Êmddalpha/data/heart.txt.gz0000644000176200001440000000554513162771466015071 0ustar liggesusers‹uZ[r#»ûÏ*z.‰zußMdÿ+9" PlgnMMœŠe‰âÙþ­×¯\¿íúí×ï¸~çõ»®ßûú}®ßZöÿý~Ý j»þ÷³ÊU¯~ÕV®&r•K®Z}ýôý{Ûÿäg®ý‡vÕ:®1»/še¿ÖϼôCëª?cÿÐ7dnÖËÞîöúÙµE{§îÇɽ5_T†¾ýý°í´p„ìŸóÁï‹ôuï÷3vÚ;¬…ãŠ×qܶiúê};±ß÷ç»ØNÓŽÛ?Æã;mßHÃq¶¨†MÛpøi!OóEË] ‹Äé{ÑØ?ËòE£ÛßÔ•+ÖÆ>¬»Ùî­Ï8®l8lo,Ó÷©æ€¸Yï~3µgïeKîâûy°~f5gÕ}LÕm©]^,´c¹É; ­à^ãÁ>îéU}IU¿à-)úº¨ÏðO«ˆ¾ØŸ;ü÷ÚÇ”æáÇöÑ£RŠT‡í¤ÇöØ Ç¹yºS}`Óºmщþ\‘""Ì#õ? ÇõÛíÐé/GZ`q ßà^ÚÇÝ5¢E8nûI ým‹?5‚2Ûm/ºq´åÄñ÷¶¨0i×ð},/=ýÃß”¶}Ò7›ö ¬Õë?¸™…[“?ì¹ýT5º”¶'Ɉä_X­!±ºså$±êo^Øôõ`9F!I¦ä†#ì±ßÿië˜]qýõÎlÑRÐB}XF´}óh°b÷ù7»øçA¥!úý £ (êš’v…Ñšj]?ʺúÍÂ!#½’À¢¨Ôñ¾­­{€ñ=ßKp«¡Kr&¶Á‚’Ö‹£6ˆµÜ¥\lxkY¢|¢¤•ö½žå>3…@4ó«ÔÛ—Ô Óðõ>Pe(ÆKö`Ý£³Rí¨ØØ§Õ‡à•² æä$}&*wjì-‚ª¨ñvŒ¶HiRÌe#ï ÝJ@wûOÎ`;ý ÀÃÙï숼µ“¿Ó,î˜iÑ~80dTª-Ϩ߯e&köÎIªeãlØœèX~ލåzÞ)hô Õ·ó‹|Ð[‚KÁJ¿iX3¼¤m+T2©k„ä¡'lÁÍf•×LÀÂ&Ç]T‹U%ñ°¸><=9‘‹n$¡Cæ_l,•ŠÊ³PÔ=…b‘un,HÜ…ú+ ÿáÕOH‘¥Mïœü©ÅÈìQ­Â»í+¨›’¨ îj´ L“N(Àôrÿ`ž,³›óñ¢€‚ôy"2ÿ­H˜«›3åFtåMË"Ü´Z8x“JH¨ý'ö‘Ó4Nú vÔ‹B\m‰T‚1ˆÄjÃÈÜ=P‰öÔ…N¹(çQÁßv¿ÑšäV=KÈ4XУàm*˜p¼&ß Kas™sÞ› ídP1_êº'ò¦"™ò^4ÖÖrÕ×’ï†Ðò‹àÝWïbTŸG7Ô<Ìò{^AÜävÇ»†v%xFjÜ îÒ«l(2{ob¯[Ý9A»3r»ÍÐå7êHðå•sß‘<(AH¿‘6Ë«˜_P¶ŒÓ48sï\m wl&Ú©Iïž„¡qn½—M^õ™+SÓjXyÖ8\P™deË:FË éÖï8 QQŸmʈ§½gâ5WRõ¢¤§ï)þ‹ºißÏý»ß홀ñFŒ†¯5ΚbÄP…Ò……¤«1×8 ³ð£ä—¼ÂtÔÀvRUO)¢QÉ«¸«¨ÀÇ£¿þÀ¢Ž ñå¢[éö}¼¼èi-¯ — Õ転v9Oj9ͲDÄDɈît¹ }=Y-v­E[Dá>@ò­üv<>VHé©ÁIÁ“‰Á<Ô·¬Ú±KRͽ'Ô6Çjæpc/‚€Òxf-A­¥KزiÈqÚ&©O*<$‡N…&Ïu}åòéw9ÑÌsÌ,YÀÆk>äí` £ÖWÈ)¯ÕdXa2sdÐÄ¸ÇæƒôΗò›È M`J‚ƒ–ê0Þ] ØFI5bîCè ÏmÕ‚¶;7F’-£#I•ą̃„Ì5Þ )U´ƒlæ5“Á &i&6])ZFÜ#Yó•Ø…ªe|å°¾ ZÈÒ9†¨á†àúÀ/k÷¨-ºæFQ”H»iVÕP¬îïÕhõEÀƒ[óÊdIÝWT'phã³üç`üêÐSwG˜Ý8ò½K4;Õ…œë?ðp™‘d>!Ê]7»+1$ù³ûLLÀç†éQ©çnŠt 褄fêLùùw7áŸøØÁöy¨‚Ø ÎrûÕË™VÜ-`*àn±=8<ˆ¹•“®Ø˜Ö⌒0è$›p·hts£Ï’˜EAsœöÝl”u=‹f‚q¼æ#"÷µ3|ó"‚ÙÚ®<¬…ô§Ù ¾ž©…°©‹˜Þ½š‘UGÁN¯†óe$™¸áöHbåÆè!ú¬¨ýhå'HÌÇ"‡šÑŒ4oFf„œèÌ9Û Jöúîú +­ß)°IºqTÄqÀ¿øÇWßþ~Øéõ×IýVØA‘‹šãÚ@ƒ=ævwÚ÷b§@XRqvc„`xŸ$KúÌfjÒmL¦Éq³×p$J;aСºí­;¥ÙbÕ¬„G8/Ýqž˜(³vJ{ƒˆô0tiùÓìøÄemR¤¬¸‰Æim8Wñ)ñG€²¡5Á òó‰FÊ¢Ž-µ¹áXÀçð©Î2/VÐLó •çð+RDÊW‡¬OK¶jzÂ0a‘%¿¤E‰ýfD˜i$XdZþF9ÆôˆGG=Û„˜ îKƤA‹CæW:ò©s‡Ň)ÓÒ`›#x°ðÌwï­ÀŸ‚ ©pt;¤_o>íùö"j%c;Íø$Ä"ÓÀPÏAØJ¹Sè-¶œG©ÐÓÑ‹³Ívb8^”DåÈŸ§¼Ád®km@w×Q|$5ÝË•kõÌ~7E {ìûKå±3¾ €)áòxfÊ)˜(_¥Å/@˜ ›×èjŽBËß’HUÁƧœÓžOIšNq ¯û ~‹`þ½—6t§N":¢ô§:§8Ï6ó¬¹×äÿ´†¼—&/ßRe}f<îtùf¬*Ôg1˜Œi½§ó|%-*òÑ~D±OŒˆI…kšxÔ×Lú‡fèßCûy_ÏA¯À'é»ã0½Éò€å !bºT¿y†»D9‹™"„!¥)ÒKž÷´¯INH‹Ë'ހ̭ o¨ªô8§F¤Ü&Ìr¶˜ÈÛNF]I}÷'Æ ¯™X?©Ì|ùÓrÙQœ­ÔH¤†ð[<Ê{§lÎ!í›G¬ŸˆÝ‡î\¯ç‹&²•œÉ¢ìk~‡D³Q¨;+CPft²ðàû“³¾˜?%–b#±NC½‚@Q,{šG^œÙ#8ηïT±3íM4åÞ™¹Òû5È?L&ddalpha/data/bloodtransfusion.txt.gz0000644000176200001440000000367513162771466017363 0ustar liggesusers‹µYM²5 Üçs„ñ¿½¦Šn@¥²…"‹ÜKÝ-Ï ïAHB¥ÈçxlÙ’ZrKüüáý‡_ߺ~üøá÷?}ôÓo¿~øã—Ÿ®Þå«ÝךWzw_©\ÙFéJý*mò•ï«6ŸËõãºßÕËþÜûÛ¸RÅòlËmj]9ï©vÕ©õÊåjs¼¯Â}éŽsöÔð¹~%¸ÿN>زëÄh‹[>ŠU&êüVÛ“§u­µÁÚwÚ»·I¼}ÔmìS[$ðÜzÍ+§ý-Ù¿x ?G[Sœ³…wè5ñ-›Ô­VÂA]Ú4L ˜(›ò­Hçîš–7ÝyÛ¿/éë*Xm^ûÝŠÔþÁ™·ðì¢Ü·ÿ[:cJ©ªôkš9ŠIHt{^Ô— ÙV©K2;c‹ýsÀ:Çm^°ý–ÓÜÐëjIKús°Æ5‡Lðdz^¿U'>œ_sA.gåkǸu¦Ì—k÷Ë_SÞu®<ÿ­…Ém¿¦¢ÓM¸µ™Ðkû0¢Uš-êôA©ÂÇèt½ãÖ`‘ûsÐÝ@·G×¼ÚòSbQÊÝ?½Ò?n ÙÏÌíçîCˆÞiIó]z×®Hëˆaˆ&ÊÆ¢×Sg4eá®&"ºÈ ¡C©:¹??ṳ̀SÓ-Sø]NŠffŸ}‘9¥úÒ!#öÙ·e]˜µ£tPc/ÄuìǼ!'+wÅ̰‚DP!f,jr1(l¿Ãozã÷Ûå›f7 mYå8º*HGdš oî,?ÎxÞuOmŒO8=Y(…˜$2ˆiiŸOSå1BºÝtßP9‘NjHÉËâK.ñ·Ç‚ŒfOEm„Ô>=вÞÎà¾ua:KÓa±«o<¦Ä«s}ùoúÊõŸï{m¾X€ù’%‡qªÈWîš\J(Ø+II¿_µ`µiiÊ`iÉ…é÷h˜³t¶ÜM !sx¥%íé² ÃáÃI®{mdÙgðÄ%–x€ÓÓñ†eèv“)=‹T‡KmS½gR—6gyñçkp¡N„!Û•óèŽßC>CÐzH}ŠïðŠ©¤[{ ÙÜDÆÁ¡““ïFò sT½Sgí 1 £ê…sViãÄÈo¢XÓÙ–8ÉdÞy[kSú®q%fûHúï#sƒÇpòä[ã¬A׌*ÐÂ%7öŸl˜¡ 6]ºÝ–ί[fÅâÖô6ˆüFô8[rïÛ«ÔО›f·”c¥q_®§ÍØ‘Š<×õPj”óž±C šú9‚å„C§Á2áz@l_Ù Š#ERT¢L™ßg”(fI!+GðÔ‡KR·Yî0ð"e§ ð”vŽPމë[®ÚHr‡›*{êkáóšL›6Ð+ÛG{ˆ&^´ûM"ê-|úFŠF-R ýûŒ†Aóõ¯ëGÃRãX¾­È¡®ÄÒTW(ÙÛ±`G™,Éžv½QÈfäÓ¢$”‹²¦cTàká¾OåoUЯÚ{ð•#­dP3÷øj.oCXé §ó• ËBŒ1Ù €™âÀã%â©Qñ?®uÎo²x”Óÿœì¹^-ëBäˆÇ·ås¶™o³û™½„5ž£É{™è¦ôAO'<¢Ú1,Aÿ§Qzëëñ‘÷n-çÇb4xÀ±mJ£º)aoÝÃú°ç‡…DÒCJŠø>£j ?·ÓG~«©»Ô$ÛË3ÒÈ6˜C{Óæ#ŸÛÊp¯1 xðŒ,ÁÃÒ‹úÅîbUÎ*Ë÷š¼$¬xOnƒÍ`™˜Ð[ògª²È‘–6×¢ÁR2«ì«¢3¢¢ü%ý”žûÌ 6,y¦UAåE3(“¯i„:ÁN_èrÝ ìá°ó† “Ä4Ö¼ÑZÚ¬G[¥ªg3’ª‹&5qJVW3¬}N÷$ûެxÀ O‹Ãß%^o3ƒ½9ÚP$emÇêÑ^aÍÇ•S °ýà<ÕÔL©HìT™;&º•&=÷v ·7H°êy/ñUÙÑÛ{ãc†½ŠÆûr¾‚…}”ƒÄŒ³wT.§,lÐ)ƒP½U«iMÿϵ9c,êïåP\Þ[2úÖˆçBÔ_Q¶«hɧqUBmõÐ*XS z073ú„™b=ÿo¥‹"ªç *ºh¨¿Ùi(ž¡ŠÃ\ÕHjó H¯f‡7“Ì V»v5zÜ´=ˆ‹‡-¨`Q§(9˜ê‡62óñè8 ØO°­J¨Ëˆ>ë óõ¿²×g%[£PÎ|<›‡›‘[0yŠe&Ø`F!Ц¨zê0dñÄ'cœæ„Ϙàs]= ùMvØä…W¿º¼¨IJÀdÓ$þƒoæ\ùó¹Áæ§ùh/.Áô£§F#pSk ’þËÅ—Õddalpha/data/veteran_lung_cancer.txt.gz0000644000176200001440000000174013162771467017764 0ustar liggesusers‹UVÉn[G¼ç+æÞô2Ë1ð10`À¾DÀÄFdÉ húûôþ¨‹E7{­®®á‡ëÓÓýíçµ}þuûýý÷å©}¾_î¿^Û_—ÛóË?¯ÿ½}}ýûåvmíãËóýÛkûóßkûtûþrûzÿv½]~¾µ/·ëåþãú|ÿ£· ­·q´ÙÆnGëb¢ÞÅ6ÆmPënXîˆ W8vnÛm`:ö¾,…ál¦&¡åFаÀax 1-J¤·‘ו/9,L>U'R³aáÖA["-Àº§|¶™n¡ý1o úpìÓëb£ª1r~>[á CRdëÙ_,´QK'nTÁÐs\æJ¸|åOT:îX¯R+bo†ÏžÑ€gŸÐßœ¨ÀšÞìnŒwe}·GÆö€ê>›LYŠA$Œ|Âx\Ú|:¦©§ãÅß3žÄ;èýq[QBÍfýbK”¶ò)l;†íGÊ# Ùž«…¼I±a ÆÚQØÀû;™"FùÅ&¤„#‡ydÒ'gÑŽ‰uz—ÂŒfl à4²ñÖI3ghK‡ :SKöÞ^§;©¤ S˜€mxuµ­éJ„N&5ªÔ°ÕŒеv@°*!YÓ¾È"aDÛlÎ:HVç=¡Ê¥ÛpEÛpÆbðd8sÀÕÓòáðšÏ`ñC>RâG¾ >úy‹5^Ï33µ„Çù°d¢ÂzÖÀ°0‹pÏ9ÀÂxs@žK.ws“®ÙžåxQ›=±b!L¥G¹L tK&¢J‚·‹.*pÎÜ(Õˆ²9ã-rVÍÒÓõè´X¯=FÏ[¨ömt7e¯›KëÒKoÀP›g¤©©´/Óò®™¶º\'A´ê 4е™L$"RôOñ–ž…$‰=_,ÜaJ ç í– m(®£?£4LMÓ4³åSq‚¶j?ä˜Ý®ÏÔ$~LXª”ôà³d¦£n kÊáôÃsòu>þ½öàþ@ZÑPyLF¢ï€êÇ ¨ˆÖ³L¦>ò¥âÐK³î| q§­~8@ŽO~þg J·®ü‹X¤ÔÚ#~Z´)ÂÔ£úéçÆ(l€ùƒjÅh9ç*l2šv>Eè¤øáúvö ddalpha/data/bupa.txt.gz0000644000176200001440000000467513162771466014720 0ustar liggesusers‹}YÙd7 üw/CÔ­o'1ùGbVñÆXh,z¸’xÅþ‘ï§~?íûéßÏø~æ÷Ï_{|§~}|u}M¾òwùÄÙ¿q¾V¿ÚH¬íùþµö ¿ñÈ·ö×úWõ¿fœ\ßÒgôîþ¤ÄÉýñ‰^_øøÉýM=V@9J`®´õUù„#ªŒÊ³òì Zù¦>¢_Ï7â²~­à¢òH+¸ß$âvÿ¦@Giqr~kù“²ãä¤@‡r¦@T\)j´<©Üq’&¢âN\'¸Ï{]ÊÂ}ýŒ¤ªÐ¸*4󫻺ŒV: |”hOü²Hƒ3Ç#ý†ˆP)mÜ¿]¾¾Àç¬ËGÝÃéó>©ÇàÈñè©.šä,WOªdf~äÔXèB#«=Ì|øè´Xðûƒ1¨ò÷zÕT‡ÀEHöª•^Wö½\Ûͪ¯—”¢§6ØöhExk0™ö5ˆ*PS;=÷ ~4Ô­QÌø‚ów;ÒH™4Õ·?'7ïžÐˆD)Œ™:"ð˜\úDïa&²Ÿd/=lo)CkÂöq!2ý®„ GÕ,Œ[~q¢ZdPúfÒ7ìh'¯J·´†Åó©ÿ÷:¸/еœd¤¦'àÎTs!=+å¿55ðô¤A7OÚáÔ½3 Á=ˆžž“†9‘ æ$~’¨…NŽzµ.!ÒŸ§•4fT„ÇÄÂÊ2~N+UƒŪçaa‚ êƒ8‘”HNšÅ¡ð`§‘I”Òà!3ÕôQ7Àý±ÒCê€JF .V Ö #ªœHØáÏ=¸ÌÂÂjYÛ=³ç=¹M•Ž8Î'aÏfµÁŽÒËê>å¯Ñ$ÔšŒ.Ƀƒõ“Åö¬Ì •©±:5]PETJ ©|ó0«¬!9Q›«‚0íòQ-Šà"¾þï(â˪¤Yó>ýVÇ÷ÐPÀª·„fÑxi´ê´ÍÀ~†ø #÷í…;hªÌ< Ï YïíÉÐ`䵌¤JÍù@  ¦äLæâýM‹Òh$ÒšÛr͹_êd™Sj›N„–Ã3«æÉnT‡+š''M©»åy“™¡¡’±Äj šQÐG´ÝD‹_v^Õʯ B±-orI”r ÌᤚßàäîË2L$Kâ 9¤IÛÖb»LþÓíÜ#f6»f—¨Zj&hwt½|”• cö•8YQzåxÎõ°ñäLdÙÞÜú¬D(öL-5(ü3ˆ“Õk{ß1âò¾Ãø¨í **¦0ç_V‹íQÛ¯¢Çª »tÞŸôî/þ•¥òzߤƒe'ö7B>›Y¾iGØfòÍ9½*©£‡¹¸1µú‘]ËòøÐÛÃî³/‹Cõý—v°«Aœ8ëè¸''ûk¥·GH5,·è#ågn LòQMðacàÁ»y•µx·˜¦½_’j¬™ÑÜ|Q™œÈÁ¶QÍÚ¼>¬sôçdG¹d4!è*Þ9/÷ U5rÖüŨÚlYþO¤ÍIhs"J5YPEV­¥YB‰7'¨ã=½#ÚX˪µ‚ªx¢ÛÜP9g­‹:®‡û¢ŸüêĆþÑ,I÷iÕðQ¾¹÷BÅ÷½#oÏú¼>l¦gŒ&wX^àÊþ¨9,æ8Ì·^vjzžë>Ò2®…s…; Àf›"ŠlØìjûê­Òë„RÙ¬t~ÙÑ©ŽÕËYwDC·þÞ¾;§‰Ê@ä$¶“½ «Êè9¸8«#¼{PÿÄqcd §w”æ°:´CùÃœí²•µÛòc´ Õ' |yî7O#QµNˆ¿XÞ˜”(ÓR®3 /je¹Ó0Q£u mgø±Üée³Ó6¨füTí †¾f,äd2Ù8Clò«1ÃÖ2 †P¢›¼±ÐuFk«½•(Ì¿òਸ]°Xð{Òásç ƒ¤LâF¦!¬Çóä RÅ[ÇEkÝ‹tBjᆀYVóÉÆÙó7ööAx2/P6Ù ˜ö{M×&ôöl6cZϵü{‡zqvAãƒÈ{˜¡>øw8¤ßwk¡ÿøÌû`ZmDu&K{ ‚¾ä“÷ºŒÄ›ûúHî …×ôÖÉ+ŸxµÇ`%œPŒ£#Q˜âô¬|q¥èß0ß‹V5Ù²1ê6ƒõ¸‘qÁú£Äóâ#ÀfóéF†NZ½ø]LÎ&^_¼‘ ÝtM"û;`$a'V†#Eíûžg+»|âÒA4/û‚@ëÍ`B¼yâ¢Ï½¬œ~“Uã–…¶7&(³¶…ñáÉ1ÕpWBè‰×^\wS0¸8©Ívs¡ äÙhà$³»–ß×»ï3.‘Fn-b*Ë4W/uùÛ0¹äÉêk'Ÿ£ò:KFç¼f3 cT²sp*SÏ#‹bÚ:Õ-ÔV—Æ\⨠,žË ÙN TáÂîs§Ð™Ëm_»L÷ò ÷î;DÙ—8 Xæf6™¸à»œ _C´='çñ ›c[ëÙË[iM¼moÚÐÜÕž½û  ×'t>Ö­r¡í¯Du\h»G¬9ÊEÖN~nÝG‡W+RiÐí ìûè¸ÓZrŸLŒJƒ´~±2ÙòäbÖØ_ʼ'§ÍÞ+sâòვ+†µÆÒ¶_tºÑB;—-¡ñ™Õ·žF.¾€íAh,,× K™ð‰†¸í³˜9ͬâããEX²í½x\ôr\Ò1ã8oŸ—xbƒœ8hG$Ÿ‹°f¬×û¼`ʱÝdxØ`—´µ KX÷µUd°#`Ò,–Û&÷ºÒ[W.ØÆ¸HvØðÃUÓ…—ÕËMž<¶Wh¾ªN;u”&®\›phÛ±x®aee](‡†Ø Åz #Ÿ 6®¯;Ûm[÷þ’Ø?¨m5ß#Ê ±U*8Ù@ÓcÐgèqÍe+¡zjÖ¢“Äõ™ ô³“È?Eü—˜$Îí£†cd†’ó`ÁóYÁ¬_Újbìå*Q®¬D¨Ñr§'Г‡ðˆTyÁ,ã§³G*°>F­n?¬4'oƒ³Õ—ã+3ÚuD‰+†-¶ƒfÑô3n-PÍfÜ©elØÛé•Ú¼¾·À:›k!«¹=qÉàøh ßà ¿‹Ï‰K^·¡äÎÕGä ¤à& µõU¾8qd‚‘°[/L¼"5…¸ÐDà}¶õU²®]—4&øtTtHª®Ðï°Å†™}öWïø¹{Ý1¾ÃWu£bèÈ„ëHõªD(°# ÃÉQ¡er4ô&ºÑS°}Õ9¦6¼ãÕ¡­à¬Ô*ÔZá‘ÁïŒiÈŠþ©ðžø‘&£ ¡5‹…Šù-M}…•]ýÁàfnõ`èäl¼78á_ö@9ÃцûåÆHeräp£¤åy!ç•‘ÓΡœ¶ît¸â¬Ô±²îœV7‡Ž¥õæ~ß~ÿeésbÆ2Y–ïyó¹Bûš¥ó^cë+‹ãéÉáóçîbEdu8kO%ü”˜Ðgß6¢Ð‘ÂY4^í¸ÏÔþ¹Äddalpha/data/wine_1vs2.txt.gz0000644000176200001440000000602413162771467015575 0ustar liggesusers‹]YMš#;[÷œ¢NPŸÿ×ï}ÿ“ ’ÀɼÅd:IÙÆ „ ¿õùùµç·=¿ýçy~Çã/óçwùûç÷øµüüÖŠ?ÌÿhÏj­=õ]õ±·û_ãOµåïöÓÞ2ŸòÚöwvÿªû£¥ûÇžZæxêŸÚ^Ãx¨ú÷oKñwþµ½‹;øžØ¦¿mc‡á;ø£emP§?Ùð2×S7L(5L°î4¼©°€ë›^ýɺioëoÞƒóüƒéëjÅ3›XÐaÞ~–WÞ=ñ¹?ÚwXÀïÇÁ1~÷Š­y¾[„åíøþÛp“ ì=íY-Χ`?6x[ ¶/iÜž;ë™ïò€ÁºÚå‚'¬Ø¢» ÎäuüŸÑ¾~»Œë±ûðkÚ‰õOW<>ÝúÅ(…ܤbƒŠ ß¡p‡ywˆ;l1é'÷fÎ ¸ÌÎ5«wØ_z``#Ä çû¥=ž'V6å˱Ê,ýåÑõÓ?ëû [ å_3-7`gÈ}6£Æõ+ví8ˆªc=X]y1Ì2úÜtd½Âø}ÂsB/CCôa5-{j³8ú³1t+žƒÛá±Ó/x»L7<]ëüÎÈã/$‚ øÎ®Óý¼éžãÍäh_²{6Yæ;"æ‚ãKj ¦cmSúw~FK¯TX±üÅ?³IW™t-1Ë-¥ôÇkÌàÇZ^oа·õ}§¼' ¤lˈÁ«Ì8›G `Øqñƒ1ÓV—K)h3Ÿ^ömgæCÚÂzàãÓýOàÝ)f'à ÌšØÕp¾ßËŸ¬’.qæÊñÏ!—Žfê7‘ÃHº2‡/EIz@x#ùʳx­Ä[ÕÕHzu^¾›U*L"ÀǸ÷êºÛ(ñ”؆°Ö…þ•`ïSŽ ó•R#YG–`š¦÷ä{:Ž6×—Læžß™êÌMr8Òˆ€·èÊ Ûû¬Ä//™Ø—·¸<™nlüòõ9í‚¶'Wúa\Í@õÄùMÀR¹YÏÁéŒ×IÇ5w‚( ‡9j“¨hq^«Ðj X/*%ž÷ ͧ&jà‘É‚H¦ ëXèÚ¥Æ}e¥tˆg䟜îg²Vq¿‘™.’ƒÛð@¹–ˆ‹PsÜq•¬Ïj¦Ë›ÊàA!îÊ÷‘qgõÜ-v a°”uËB×M9ï~ê7ëÜÇ'‘Kmbœƒ4K÷-oÈý—ìü–·„}¤ ¸tÚ1ZòìèÊiÕɵdØûNÔ"Ïxeƺ%j*«ðá|‡â±,ñ;ë®6°žÌÄ-q×ù™ÞsU³“oX6j®­ ×Ç­0°¾Óú¡¬aá­(eZ¿"öU§k=ï™t ŽgðCy8¯]ÒàœØ”šË—;…Ë‘’;¸n#áÝ¥k†é`HI<¨òy]*Í †ó‰t-Qy].]çWAÂXi78§äõç%¬ä³¸þà~3vG«î•\c&W/ §ï­Ï?±7jÎС•¥°4¹ŽÌÕb"x nÊùOèH9ÐFLy÷\J[ßiÈ‹<ØmÞ©+=ɻԞGÖ¯ ÐÖ$«9¢ÂRUQ§n >Ü|ª{S™‹2ÃꞆ~#su¥,AÛ¿´õI¾ßg8®¦¬¤Ä« [8§Ÿ4ߪ2)frÚ"×™œFÆùªðP3%qszJ£Àè¬Ñ깃FרT€²æ?ŽÇ~³ ;RnPi1·{½–IsêG¡1˜tAXb{Þà¤0To‚@À} pK÷m*ó!Žc{B ÃþÕ¯ÈX~¾T1a9Ql’ð²\€;×KÛzñöl)rPrÛJ¾‡'îhlLz4“’ñ«(ƒˆÊZ÷%.…é ΣÈaÙY;¿ƒñYB(¸ ÔåoTRdÃùç7ÊH&Ñ?‚h7ÄI™"Í¿âòl«€^¬oÙQxÊÍÄxծơ"§ìÃÚògLFþSY´^YíBÉœ äZÜe$2ýXÊݬWÑR±E±Ü EÉÄ«’-¤ö"Ö ­‘ºHÚn8ƒËgÍ ŠË—x'‘Ç¢Åà­ð=-Z:cµ½û¢[Þ‚.|&è W …gãÙÒú•€‚íç!³5ä;¢¶³YTàm^tÚ£°âad|\ejUjrŸt š¶Ïá–ÚzC¢í+†DÓ^¥’¡taÀv¾*•<Ï–õiw¢ÎP«Ú¥ žú\<$¤KŒ©õ Ý,3U–Z†«½ê äÑ­ 5¡p¢Äà /¢5†0£îQ±D?ÂqÌÇ~RÐ%ZèfX_9(xì~ÄÂ¾êŽ HUúÐØá§…¼¤6/ Û¨ë7`#=(ÎÔ5Ûê«=“1Tf¶ÊñIOô“"ª¼?”»*¿ýú¯%ý1¬îß¾Âûç$aùÆžÉí°%3€'W'EÇ.žåÆó›ÐM3²i‹ÁPšÉå ûÕðÙÆ ±|Î4õ°Ö%_Vå;åËMß¶[€Ž=ß‘ÎA ?Ÿ˜ñ ërû`6혎¦²!™æœ'˜§=DQÀÿDó5ʇkŠ|w8½A“M„"•»¦æ^Ö¸÷.î(¸—ô`ËáW“Ôäé9݊΀Žëh¹|µ ‡‘%f¦©Ílÿƒ‚¥DPaW`•×£ IÇÕvåø”h’©Sc…À겓 ÖÎ,E¨v´þ]ûâš<*˜­©sTókê‚v(kÒgQȧEÿÇиCÐÄd¬¢^ ! Z5e\NŠFæ×‚¯ Œ“Y{¤$;WŸ°S­§P¢Ö””ÈäÊ0Õ™Ù[™T0gŸõÎz*8SS<À‚‘è'lŸã¦—Û™%Í´«üF%>3µýNcH)v ˜ˆ {4R¸N'#*ž*-wËÃE{ü_«–¸ø¸}…’gO_ËÕ9,4F ëÁ«¼‚ñ˜:Óô8< À4efæZ ãä´ë‰¹¨;éz|²' 7:Ÿ®ÂZ–v@\M±]>òQxÜÔTÓpcÞ·kSÏÍòŒgêHzñ‡O —[~m;z¾&Em·m!ØÔó…4k=ç$d˜í7™ŃڷQíí7»#j+qNmO¹ÜnôÚ”“¢–¢ÛHvr«nÈÔ’±)€v´®zÜîæ$›®Ë¦Q…KtL ÷Ö<¨IAX /\ˆ¼o6g¹g7i{Ôðú¾ªþçý˜p¦õ2/ØqKÍ5¨ÿ3ßz4 b…ùhMÈ(‰H¾ayà­Ýi.“¤›YfÊ?µõÈ2)z¹Ö;$Ð…³RÇbo;bvËÆÞšìôË._Õß„Ñ*˜ÔˆÅÆŠY?õþÉO–í }çþã5afùæÖ#æ€'=Í[ýYaù Üȹ‘g^n·Y«*&å‰Þ‹%”¶3Sýh…w¤Ï×m³ rz¿„2“š¸8|ÚÚwÊ&Òí ûÑì%¾»Ú¬@ŵHMb¬ÒÅqfœ‘ÏÈý|Õn¶xÁŒ!ÆÈzÛb¦Eúc£ÆrƶrÐë()Þ‹˜¿2ŽÞnÜ4×_Fù3¥fQV Ÿh*Z6ŠÅu}œø%yœÒK›z4Ž%6JMFï]åOö·ïòM¿Ž°À¹ÝJ¦ß¹`wÓˆ±¥Ô£CÚÜ´3c”¢ô [€djPÒtæ‰æÄ8ß¡×vð[ë“brÕ>¤Þ-ë0”œÅo<òþØÆ¯©®Ëÿi™¢¦·33*’fP-~ÆXʇ)¦•-™ý“ØÔÚ5¤1{ÄŠî‰w‚áÜ!ÄoMwf‚„AѼÝOÞœèšǘ¸ûé3ö²ÙçÇY]ðDnë‡ ÉÄa_¿?—;pÇEµîÁ±-Ô^MN›ŸfP¡6FŽ­ÓCf»Tò%Àæ(%ÙÏü‘†MæI:]¸$~×¹ª…ÞŸŸÔÒ$èÓ…Ö«¬ƒБ¥Àí튇óeùêOü*™?E4©¿I­àߎ –uâÖüyž?–ŸpÞ7‚à(ÿWùœ_5t†äêªD&ÚG¨½#t… 5ô`6¹\¼©šÊÃqåÚHŸ3Žé¶¿Û•s ddalpha/data/chemdiab_2vs3.txt.gz0000644000176200001440000000175113162771466016372 0ustar liggesusers‹UVK’\1Ûç>AÊ€ñgKÌýOIد’ªYtÓ Iàù±öãÑ~ð7ÚO¶?¿úïmm÷9›ùh™Í<ÙÎj¾O3[mÍ Žf=[¢#ôÙÙï>Ú¹~é›Q…p•®džG™=[àBËÕlÞ«ðµó|oîøŒê¬ T¸ª#€3uraÅ"ogWÙ-¬i{Ge6Ô ÕÌ{´Ó‰83oS³á‹®ÅTYFwõ´¬9°{~¿!Mκ HSº¨_ô<>AXú£ý$À³µUÁ`Ÿo³Í^5CÇGB’hÙ?Ii èX¤–pQŒ3qRŒ}XWI‚àqI­ó`Ñ! ‚Ô5 ¼ñSPG“Q2‹o¸rWj\ñPµlt‰OšY*?•pj¸;‰`Þ"I]ØO$CÒ!>Ñ!ÂʺbâW^’é@ûŒÏKð«¨E¬R±êšºg÷¾ ø$IÞr<‰p(Øñ€óV>ê ¦ ŠäûVûÖR7´(CT_‘%[Ò©.}³ƒþ\C£ùuÙcˆ¥Ñ£‘¥ó†ÂvCSלç¼+ç­£CC²¹V˜5›°íŠØ ix¹æð¦b48(ƒì°РxÄc¨p»;åóÏËó®òVpEWä©QB„¸pÐÒôƒ€ÝÆBþ:óÉ·‚€ŸWýd¡ÀQ,“qGÎKÑSÝ›¦5¹Â:’¦$!9 O-úáÒàD©†n$0ÐWƃÅy"_œÚ±? ·f>Y·1D*ÐÂó™­ß)@¾ÝŸ¯Ø.˜4“zw‘Zº—RàÚ'ÖWv„¬AíK²Ã×ýVg‰wû Lþç$®®Ùÿ.º»¼o*={Ä$aôý¶‚ÎÆœÕ<1ªSþ¤¼tî}îÈÝ•(уT ˜ rrE aY,vA'aiD¹É7‹`I ß Ù•íd×`IôÌq‹ÒÓë` ÑÅÜ_7J“à<íoǃGáÁÌ*´àŒ/DÔ§£^7Gòᢀ£é9†­ô9´?Ëæªì­8­|E¯D)R8–öaøx„8¼c\X ÷‹OHÑ`È®_˜‡1Aœ¤$çý!ñÊÔ„Œ,B8t _à¸í¬zæÑÊ n¿µAvíòš§óIM¹X‹2¹&¶S?W‘› Á8ÿóRÂdDƒ«aÈ#ÂwÄçžuú¶tvîû°Ø’X$ÿA“UDó@ûL ‡Aˆ §^<æè íÛ¤iôW çǶ:÷Ôν8àv-XõÑÕ#ÅPÂÚZOÞøF¿ÜW ddalpha/data/kidney.txt.gz0000644000176200001440000000070613162771466015243 0ustar liggesusers‹]TËnÄ ¼ç+ø‚¿9÷KVjTõÐÓn¥~~=†°ÒjÅ Ûã!¯ïŸ#=_×ï3=¾|yü¥Ïïçñxéc©‰×$‰WI´P™1û_Òšr¢uO¼øò†™}_ØãieÄ׫n ü—òj~@hDt¯J”ã„¡ž1+p LȨbyE²úUË>C#aNÜòYØÐaÁ©¼nèp/o„7æUQ ¡"ãA Õˆ/H 2¤(A´‹Â ä»ÁH(Ñ•ßçÔ“îãB[ž±I9%i£Ý&”XBh—̧âÛ7HÕÚ>âkÄo3Á;²©\¤­É=L†¬dû;q w–ã î„EWÌOÀ;V‚Ø¡9ÜÖÊ*á(yaŠY†bt%F) ¦ªm?;VØ@e`ê]¶Ñ#áŒ)ìo[hŠs¸«‚¤Û7ww’•™îä¬ÃÆ*dëö·S‹×Nx|yÃ[ó÷ÙswÇè ÍªGwF·)Dçxá-ß…iÏm¹¿\¨6 DfŽOHsû£Tmï?âËŒ½¤‹×]›<'Žiº3¹`j³ò ÿiûíddalpha/data/tips_MvsF.txt.gz0000644000176200001440000000306613162771467015675 0ustar liggesusers‹mXIŽ7 Ý÷)ê‚(QÓ2A¼0b#AâE’û$|¤ªÚ›F‚§ÇGª~üñãׯ߾=?¾þù<ÿã÷/=¿ýò¯üþþåùûëòçË?TÃ…HO|êCOzèƒbÈ,ÂZ§0?ñ#©R%zaµ‹0Ÿã"äP†ëÊ]©„4íãG­=)ÄèO×Ðq%%§H%Dx4ªÓ$¹ š){a ©‰fóe1^Ÿr Á#¹“%ÚPš?Þg¹Óiª¡®Âä’$ù(°>Òm=gd®í$rœí2‡Ä·;rg µ E„ei6Øàûj–"îL¡•-Ôˆ4Ÿš%Ìa68kBh„žd§êòjï4Å›]£­™Bo¡$¤Eñ3_šÃ"ršô1B‘¯Øu²|Wöú>$Áø>®Ål Í{Äv¼FŸÎ ´:ßW5´Âm .©!÷ÒÌåÓq§$žïºqEDì"€aò@h" Ù#)ÇÀr—ù¾Ø IwÃhÁË-Ì ÇëãÔ‘x ½x vøþº“ÔítйZ ù¨G(ðb€FúË·Ö@Ò>H!ù͆®zpȨ\ÝÚiÄ#ÚPZ` DH¹à®NMçŽ ÕÐòsdý"ø §)Åè NHès¡šî…3ñÛ[‹æÃW] E¥¯rパxnÎyEãdØ–Z&£ãm¼à·‡÷(M7=àÅ£Ø|¿(©¡¢ ˆ÷q£ãn 9B*¬§+ÇÕ‘D—ÛÐDŸ¤Ôp’Í:’φζ[ÂyÜØ‹¼P°À«ì[X1…2Àì4£¥®ç)DêñuG´5 ê(©ÊîxV:/Úö“€…˜-ìãYâ[˜tˆ•ЋR OaJ¿¶"âÓ®ùh–UX@ääuläd|z„I)?[5–#bÑâ™&ÏjLßqÒTh9Èõ›Óö¢ÛMéEÒÎÏr¿‹Kê÷ÔÜHLER̃…ü{¼Ù°^Ùã+"sÊéNXÐÓ <ÝíÊÖ®³ &çO—ßùžd é¥#Sxu`ŽMÎõgh>¡NÝš:Ÿòµ=ièS§ØÔÙ”¨;ÀL¼!‰´¨[÷¤IK¶l“ZÇÙVÚýŒ¥(yCÖ0åS$”L4“·>à YÌ Lº;Üýi†ðºRÝÌý-|thÒ:žÀ2·›I·¼t`ÞIí'™Ó(oëÂÙEKØÏmEÝçÞ§ìþê¬M/úÉ`…¹¥m͆9o7³öKŵ²)“Lk²Û4Ó¾–ùí„Õ¬3üÌñ (RמBw­kâ:W}6*²)ºâiHÑ ü¾W |çm ›•¢­ ÏÇBñšs-¸Jh”[0ÇLXÀ35wËOµÔ¦nå9; YÖ×K§‚RÞ†4g®Wy®¼õS˜ä“^­~¶Š+ö²9v÷¿vF¶vÙ ‰ ­¹KŒSn—"öBDäÇuÍ÷NC%Â%ŒÍCÇÚë>‘çSå¾€“·Þ‹½ÈÇÞÓ¢S·v¤ŽÈkÊ»b,—Üãû[8°[ò$錊ռ\±=+êòˆ3è´zM.è‚lƒÈñ6aEÜB—)ZÊ]¢8_Å„#Þw’.ìÕTlQykÂúæ,Fk2ï$ TˆÁtX²cOJئ¯EÇÒ™îå©ìÀõ0&+³ïa}ð¿È‹µŒn¡ZkÒ‹æT¸xÁï{ Ò!sí~Ýo¯ã?¹³bç› Ä]J”ý<—ëfŸhSš,½ú ‚Wod{X´üéaÁ6J°ùíÚšðµÂ±úÖÊÆ5ÙMÄö$޳AÌ—tj~%šÅ³Ã`¤)£½[ÏÕ‰×(™›FéþÊê"_W‚6+ð)0_Ÿ Vâ€í–÷¶OøB”ð­ÈåˆçKÉØ:+¿¸OiSG‚Û#Æùgš/hü ä~éÓ˜nͬKŠm&GX dûL´·ã [ç6¼X÷Eç{mŸÞ­ |Lþ‹5á®QžÇÿVɪddalpha/data/crabM_BvsO.txt.gz0000644000176200001440000000165213162771466015736 0ustar liggesusers‹UV9’1 ËûzÁÔˆ¢®Ôër´‘ÿÿ'&¶z6ÙR<@JÄìŸïò÷_ùú._ÿʯßåëZ¯ZÆk–:âPw‰SØV™°´7¿<ìûeqZp3 }Â:â´áÞ-þ¬ðƒ}•k kÚ*’m|Ûxõ—0ÖˆÙÈÐâÛ&¿qŒ¬ζ@âM&Dž@1„àkÞ@8…{²£z…€ Þ*ÑJCòøÜ‚£‚ÔÐãCuŒNˆ˜æÀ:,n€ÖG²<Æ–éì§ 3†=F²dó@àˆ1ApÂpÐ}ƨѦÔíG:zÚ‹ ]n´"a7Óä­VMf—6P« ê"Ñ@÷,´GbmÂìǼa ó `ÀTÈ·ñሽE+ 1ý˜…÷lWq^&Þ¡-ú-Ê/|¸xñ1³M<©FÀ€ jî‘,rw59Ä´ŠWÓ²JŒþV-³0³Š:0¬ƒV-ιœ˜•PQQÚmà u NaŠøÐüÝÔ`jšŽ¹?1–$&ˆóYŒ;*'ü"ŠóÌv7´Œ"ÆW]z Ê9Ï¡f—_`ÍF‚©n8î©"?¡¥yú bÛMÍøt¢–îØ1%ß©ñqlލ û`\ ^†ÕÑ“½©PÐ>%ópa/î56ѸàÐ-ó,‹Áq0Ìœûuq·,!HÜþ »QãÂy†ÔçÓ.õÒNÓ>¥pF)X¹+—Ö­J%ÐѤ‰•}" ÌŒèˆè'µ²’Ó a —Ö8*ïT4>ž1ª¦rþŒšˆš’-Ñ¥]LU»Õø@3Åë}ö8!ÜØ†Ichcµ{. yKbêá×¥Ž"·úÐU½QÓ¶Wª;b)E¦f©ºÆ:D;•¸u©Ôôhî8QLøluO늙ºcŠw±kÛuÞ±Ssõ´ÛˆÛµî„ø–:´­qSÆ]gç¥ é!·Ü–äü–•VÈ€®d¢ÄJ•šâ¶ôÛ@bJ ¡q •:5E|' D X'†RY »| •rÔĸ%¶[•Rpä‚ûÅÿ^Ø•ãÉJ—€¡Ç}H©°gED‡yCY¬0=ÌpÁO«óTÊÞªÂÕÁ sêQBã@PþZxêO”/ÃÚã•W|é]­ ¤£8a@ñ/õ”Ä:üH €b¨†Ð*¬Ý®ÿ „ ddalpha/data/socmob_WvsB.txt.gz0000644000176200001440000001352513162771467016207 0ustar liggesusers‹]\Ù±å¶ü¿Q(‚S$¸¿$œ$Oèn@Ò”Çå!ű6qü_½þ³ë¿výׯÿÆõ¿¿º.ÿs™ýÎÕê¯]}óî;ógמ¿©¾q÷Õý«W_÷öõ»oßSëøuu5_î·/Éã÷€gƒûÛ5~ëþ7zÊݳîÍfÌ»W½°»EÏFϾ‡ v8éíÞ~Ç* ûž“›;Ñû¦Gß;ˆë÷¿:U÷٣É­Nkèþ§\åÞönN²kÝëµA*&¹ÕÚ¾—h½sçI~îƒú¹OÊN' 9c»©§…lB‡‘÷óZ%w¨Øá^Ú6 d˜9;ú â·¼ùÄ9ϪÏl¢ ×Ý}ZRåôw§¡ Þ‰ŸÎ¶Qb”“~ßó-?‘Š«nÎÎd¸‘vs(NìÿÔÙ~÷ r°ºˆôÊíYh§Ý+ÛêƒÀa âB†^ˆœ]Gw:ÈÁ~¯Þz.‡[4—‚¹sdîä‰YØ\to^ûœ…wë²[: ﵆+ˆf®KWqóHäú –«ÑÐ4ˆžwÜ÷£i`¡3GC }~Àgeƒ@ÞźÔ»t5ü›þy‘¥ì«þ—Ò) ì³sÏ:R²Næu«Yr\ƒÄSÑá$L§ñÔØ RØš[€˜Xx÷ß…²ƒ{9]ÑE¥…ö,(épâÔ3¹úr3!RúV\*9ÑÁ=îc-Ò¡4¡‹êÛ®çx>)ô½Iø&äL=àÝtcToшqÐ^èå^ܯ‰}· 5JK“µs&¯ÎÃ4)ðºûFË™NÆšTàèƒßòRÙ†äÕ›€["DÛ&vŠP£ä¹µºEFDLȵÓk;õËy<4Œp:w,ÔÂ<™†€u÷Ÿ‡TÝ[ly4÷îÖÉpï^ÇYÖ(¢Fî5£–Úé,/ÞBwïi=ç’?Êì”?“üá"ž…Wy³B‡2ðð–ÚãZÝØµ!m;%ÒÀÂêêÔfÌ ÍUÃØûç×ÜsšXè–7F5RµÝ jœ»‡Så"åa*™èr\% •\œÅío <Ü­‹®d`…ï‘.Õp·Í»Ôå{Þ~È\Öb¼âÈMÁ?ˆÌ釻.?•º¶£.­rÏÊ5  t2Ê4–ËÏÉ.ºþWÚ½åfv±+‚+±´Âæ®$à `;FÒ´üº-Ãr‘æ Pî²ÖĆy"{é,árÒ·Æ Ü« ­ØWžp«FïtGÉ m2l\µ%Wûø›Á¬}ñ†gDyΊ’ G[ǶÊ1ªß[%;»(eÝOtØ)ë¸ÞÚbbÍ-Gû§£",Ӗί MìBÿ˜c –_Ñq^mZæ­À¬bvàñf׆A‰ß3g5žø>ÙÜâ‚] bJÉË—4„§@\xØCEß"óFª¨óÇÀ<¥Õu±­æDøÒêéÓàÒc §cöˆ3”]l؃MÛÁìbá¢*óÜ.bø ¹!˜çöU‘'s‹jn±¹L3L‘Ì-¶/A7ÿÇìbWÆñœ‡È>hæÆÈåî{t 4wbôÿ§Ä%%Ni”º³ ŽÅ )£ ó™)(¡pûbL¹"/ísxæ!pE4³Eî*c˜ž)Ym —C¬eƒQˆRDC æ ÌõûÔj8éUøÅ´Á’THƒ÷A1ú±µ˜4a'”Ý2ohË…¬WR”±CëŠ2«HÀÆ•óŠ|PQ!ù(„ê°w«cšÖ©ÂŽRGã;tAîaÒé!"gpÃ3•ª0åwëx5üçtÏÁÅExPD½g†œ/%ÿ “ZŸ¤ÕñƒsÐpE›UY« åø4jÍe¦× ì¹ÔµÝ …t7ï…~D.« M—iFUȦùü®ÉÊpp¹š iÁ :š%6Ù¢*ÁF’¹eyhÓ»X‘„æA`¬îoj¶ï1 Í•§æîÞ˜bI€)“,inM°Ï$[pÑ~ú~ýZ9 ‰à–°'D P’:É—ñðr’/n¤glïœñ( ÁÅ-^j'§Öc£ÀæDÇìw‚3H%Õæö¸Œ æ¸XZ,a"¾$¦ŠF ² 1DÄîqçS¾¯kÕLÀ“LB $tÒhÌ·:*¦´«&èWtï-v&z0zˆ?óáĺêæ§ÕŒÈøÞ¯È §m¸’õaÖ@KCÔZ[oiîdN‡ôlÈ=×#ºhHOJ•°xø!˜“BÜ¥R¾' ëT*@!ժǵõ‹÷¸žE§èÊ5†„…>`cêJk|õüjÿœ\–áà õ@n§'þ7pë n¡^3‡øÆíz CIN¿F¢U–,I@À‹5âhÉc{üð¢váÖN -åF@!|:¸Å0{ ÜYô6éUî"À‚+’‰Cý²Dó < ³·úV†Ûˆ®.MÈOôÆÍMØ=76ƒäÂÙ$îX$ªUcœIîbÀ†1%ÓΠ˜ùutáRqYõÁ ͽ•/uÙÐCšê•3‡sJBzë‘Æ*aÂuY|Ô´–×ð`#”­«$+5muWÊN ¢3rï0E;¦ ”]B„ᤴʒ—ЄI©OÏ€ñN1®‹m›¬h‰5?Ö¨¾}YùÇq¨ðñðÁ)„ÕŠ‡èn…Ä¥¶Af<92ȵ'A80h]‰Ù¸S¶îa¸·$|‰ÑMI›v¼_Ç‚b“.³˜G„e@ð¡Žôõ‰\ƈK¨_0ìˆ? GðÜIJXõÑf6AgéêMøx³q ‚p5ÝgàŠ$œÈ x„£kΖ۟°d¬^œ4>©b‡Ì©pü¤úµu4ÈÍË¿í4Õ{zyp¼àÈßEȃðã¬ZУ°š BwoG´_ÖyÆ*ÍÈ= Î7¥*[ºtÿW8Ûƒj0h˫ö&C0»ü®ƒ Ô-Èä9`kúeBíÞJ´îô+¶¥ / “lB°È7(Àr…ÎaB!ƒÖ=FÓ¾Ì šƒús¿½Â•écÃõñ îµ9F°‘9½ âeÄÜ\]-`7˜Fgpc»“aS¨4 ª‹Z°0PC !à⿈œ3RRèLB@\»/¨vš„ãüfv„®{?; 0oec —ù¬àÝ n‰Áiˆp~†ÌÌ*óè®â%Š1³ÛyÖÈ(ájŒ—+LŒI¸çz%x¶dÅÕÄ w$&¸ f?P\…Êã)ñÈPy…t+X¶Ã·ak —5õOÑ2x‡§ËpøB--»€ øZÔÔý`†’uÔ2|Ü¡3FÐüàÀ]²£QB[< 2f†¿%aaµ/kap,×_Ô¦(V.©é –#gÊHY³- ˹„§1€ TKa2¯?ÆÈ|ÊÝ‘´ØŒí%» ²óM0oÍroFÇ=çÚ›PQA¬(ý4á' ’ºĄ̈‚¾úË\µ'|QÓ.æÙñd(êk;…ez©9wµœkbvÀ÷ „j[ø=Lž \zæmÏÓ$ýªDE¢_ELçŽ:P-&ßPqÍêÒñ³ÒÍ@ÇLvÇ*´$xø³`‰$&‡bCS6µg¹MåªR—/÷ }¡•zŠfäÛÜ´“Àº´x²­eØk‡X!ñ.s{Îù {Ùü2Õ a„õëÜþ놰¬ˆQCa½‰`e…¹¬ Vv¦lRšÛ1iË%BûJL(ŠDÚ×*ûZ¥JŒrrrRE®´ÿì—µa"þ§Ü)Kõ謆z†Þ+ŠÚýb[|':_icHZÖæ`J–•y>¿±}¾Ëí÷jëûmª9Ù$a0 QŒ—3?DÙ‡Â÷qô,Æt©g^U2ßÔ¦·ªÝÅ$ã!ç‡ z sCó‰"ºh[ÖÚ%Kf²@Ã÷{-> ÌgóF{?ö9t{zªg|·l¡#ç´Úa ŒÒÛòè¹fy+q{nŸ²Ëw§—=Ò³STvÈ#Ÿœ ‹E¥Zž©i3§öfF{3ÃÂ.ôlO)â !ö°C‡³ ØGLOq^˽- ã³CI†k‡££XLÙoæñ©Õ3&°‰0º ­Øe+*Ù$5V´ÉÉz|­Ñ[QÁ ,kÌž¯ýÓŠ}ªÚ©¼çú›¨­¨‹Íýþ¶Þö£¦QÐ×!ùPóC BŠC}¿¾Å¡äÑÉ·â@´Á²P,é(¡;WhŸõ(Dq,+ÃêÃî¨ Cˆ²ØÚ!ÛÏ‚°kò±}áM⌱µEØÒ¡ï|Ç[! Eåë*_Þ )/†œ‡ƒM°üˆBZ”{AI±¶j½ê3¡½®û;XJ`QàUŸÙÁ C“Š1›jºêbªè?™ ºö¢©˜Ë#)TrF!—yS!WGàd*âʃ_Uqžo½ÃNPÞT¼å1õ`Å RШØúE(°S(b1»¢:{³£~¿—´§\ŸÞ¢K[µÑ@$TšÕãM…YÈ?µ6\^òe*Êê(Õ0Udy°ˆè^åX%NŠs·Ö‹ JAää/4:{¤L°Æ¢«(…±¿õX-a¤.`‰¿ $OìZtÍsÕÌÞLUWÈÖE?;eŠÑ$“v *±hLWL5Wí·ÄáE¦]7ú-YF(¥LkF• É¢e­Õ¯jí(´’Á˜/µønI^‰=È-êȲo7t€-H3M•Uö3éÍS˜C™ªª ·‚ò”¨ªBÖá(Mß[îÊþÞ±%CKÀvwëYŽPS”=BDB‰XšLÄ'²T`‰â¼0G½X‰³`EG‚d*–òÑ ­-ë\5¬@ì@TI ³åƒì™,(3UIAÈ—N~hîcoªeÄx}Ÿ(³‡Ò4™Ðþ0„¡MÿF[OYˆSéÂ¥Á5¨å¨/ÜùH‡>î+$ÉTÅ· jFסÀmB·LuPø5^ÊTEa5ìKýW íxBO0F±§'ÿ':† Ýb“œ€Ã‹²§p½-…¨XÔ<9ì llà1¦z§åä[¢GÝcЉGËC:€ªƒcPÙ½Ñ#éàË“©Ô 8²ÑÎ)UFÃt@²¨t¢xX°dðÊ¢À©"Û?ìèbÃf3¢]*”ÅϘ~B†,ªš,ÓK‹ßͽ†Ù-Ï£UÌci†Šqð{?6yJ@7܆ž´®ªY*óês´ápÝŽ¡9N,Ë})sDíÙdˆõAj¤ªGüˆ€ñóbGÿNø¿O²ºcx•”6)45,„j•PÄŒø‰¿¯¹¸ùŠ»Ç#°©FÉi¤tT©ÐÏX3jQ ÄrI…”|\ÂÒÆéεÃ׃oYÖ$1Ù lg|¾÷O«}ZöiÕO«¼[çÝØïÆ‡˜ùnŒ ûPò!äKÇÓÈW“–í)„¦‘™3ðYÇ|àµy¯H|=0‰jE¬HqìåW‚Yö{µ•­¾ò:Î3<ÈS*Ë×’ˆU_ô!ß>Ô>ñ¹ù7?œÁŠõêéŸíÓ²œ?ÕóÝ­[Ã9ïÏ;f³IÒ*Q$¥uGð„ÍM’ì³ÿÓ蟣ëäiO«ZíÓ²O뻃žRÑ߇íï;ïׇ”%B>t´P6¿t<ö9hTA:„ÄaIfû7;ž¯ñ 8ŒJ§á¡•6=øX,·¿Є]ç÷©ÙZ-HêÏ—‰Ê|H³ÝOÃ>,°ÇÀ ¹µ‡ÐôÏøöiñõñ(üŽºžç{y·Î»±ß§L ËÌŽÎŽ!^%ŠÓÕ‘SZ0ïaÞ”<f¯g{¾™W_š®vÿÌnŸVÈÀÁ¼¿–wë¼ûÝXß çû[˜¸_âýÍ¢&'‡Úgï§Q>·^þ9pùèxù·|Ž[¬¥Ð–°ï=G”ïÚa߆ì7»ÊÕœ¹\P¦fÄþ7éIJÚöÜÊ>”fã¼Oâð ±¼Íô‰²€õt¼5ë„È[Ì2C}-/O¾m‚²_àèì'ñ¾¼vÅRªªˆsv±æ¤Í3¡/ö>bþ}¿Ï¾ÃâA8¢¢†Ú/l¤¿¿O¾I*óÙ$. ÏÝ$¥û±t—©|¦¦ÏVù œ:G³( Òœµ31·¥Åæ ìMDþ=ø*¢òݸ±z˲jÆ+.;aqUâ1*‚½,ªeêâ£î¾,ªeZbs é”[~‰òàÊY rXB¢2™®Ÿ´ÍËT&ƒ_Z¸>¡ A4 ?DL4“š§Cìɪ3Òu±r´ žxÉÃŒ×þNÜ.ªdø&„å-uŸho>…ÁÄf8ÀpM‘r~sDY@'O­=‘—({ jPƒ§üš±Þ`Ù‘˜(«âg”¼ ˜S]LÐ)5,%^%–51oÔc|è~=Á©ZÎdÄôx©Æ+ЋÅÎõ#UÃجK`³haDÞ‘3Ú[‚_XÕO÷µâ–н‰x)Ñ'ÜûD{Ÿ`/b½7TòœºÇ©ø|ïQ92Üd³_…þ ‰*Qoš§â›Ëþ"ä;òÿNû‰ùZÄ;;šï`çUÜ"È£}¿RÜã!®…닇¶ö˜ÁD„d& ’@$cá.§–Ÿ~ÂëMâ~XÍ¥Ò–šxMÕ¸r!ï$!DâèYäyÉfЧÁÈ€ÖÃÂÿoÁú>=†ÃdþL(ƒ>·¹C;… lBFÀƒY§@…KóY®1T³¦ ü_4„а .~*h*bYªË5±NÚŒ?ÁP¸D½÷=A|á ‘õIº#ÛÍø÷ýE¦ßøÒEu@_2|´˜*Záïh¸•°8cØevnzž€8LE"ëR!oíÿ®õsJddalpha/data/crabO_MvsF.txt.gz0000644000176200001440000000165213162771466015742 0ustar liggesusers‹]VA’9¼Ï+ô‚ŽBBHºz6öäÓ^üÿŸ,™I•Ë>LO5) AÕÿþlÿýjß?Û÷¯öãŸöýu>ÖâsšÅg5ÛŸhëãm|Ùõémç_ÇCïùqd^ §:Ò¼ÚI(K·#K÷ÏnyÒ`G¼õ8ûþÃî°gnSÈ3޳}#PW ø›åQ|ÅëòxF¶ vòà Xå1á1G¶‰£ù¶<Êžÿ”|gO†!ý€÷ÑËÅß^ ^ Ð4u@ñ@ $Î Zà·Áï4C–þ`X4â2ÌPU[»˜øØÃoâ÷3p—ÔÌ_ÀTöáð8\¡nxL•ÐUÌ UW[C´7²gõ“yTQà=cãn/Ä}fÀ´æW´)xÕ`rPj(ÓbÙˆ“u,Äžê· „sø˜ ÎR& Ûy§.‹à—¶Üxý`5G×É€®d!ÅnΡ]âÆœCÄ h ŠÚx4ð°Ÿk¬ò7´QNBCüxØ,ÎåÀ´ú‰ý‚\MpÿíÕ/ ÍBþ”ÍÜB>Žûptǰg ¥Ç„9Iƒ ÃÃŒ#3?œs~) Wæ¸èŠ‚z8*öÒT“áp9å&€“>UJ Å ê¹ElâiÏ€vcî8R2ŠSc“JÞ@Ç$pÆC.³K¦Né:2G‰ÌÄîמ8ÒºÎ3ù¸ž:…µ2“àÖf¹®óÅR«®,Ô*.¯iÈKY(O¹Ù0/)Uš¹70#TIÌÏ\RŸ©(õ†¼6šË>Ô+¤„=œ/€ù¢€ý¡Á»å!*yÜóÈ~Œúzõwò¨¹ýÒ{ ‘-I—ÎPs(‹K‚fù?Ð7ä7”õ2/µj,U\ÚâІ¨% ”8ENGÛ± ÅȆdf©ÚRÏý’ú™ WX°Ðª ­ø¸ )†Ùï0‡ÌQM)^Îu.m™ºòý¤/Ÿú¹0ÀÛùN›"Ns”¼¡ÿÚ¿xÊävT¡Ø#…;ì }CGYİôò<Ð’TÉo¨_ ç—$Æ$¿^òF•.å3ýâ!4HœyÈ<¥¶Ùd ™QiK—š<‘¾¿ ûýÁz\¯4µó ²Uʆ¼¥Â\œ±c ¶EÙämjó­°!èT©|[åé¢w²,¬“ÏtL2qŽ2ê_ÿâ³ÛÆ ddalpha/data/socmob_IvsNI.txt.gz0000644000176200001440000001346113162771467016315 0ustar liggesusers‹]\ɱì8¼?+dA…®:í¿%#äBI?f:¢‰â‚XSxý_9þ‹ã¿zü׎ÿúñ¿¿2üÿñ»ŽZ~õ( ›v_kü†hý¦•õ+G›÷¤µ›¶î¥¥ÿšH5·û­#g’<àžðpÿvôß¼ÿ1å¼)ó>lxݽëÓÔʺ§u’õz¿¼ ø¾×ìÓéuó£ß˜k÷?ºU÷ÝMHfKòº/tÿï<ÎûØ{8(®yïW;¹”V­ëÞ¢¶Æ“åÕ[Nj×}S“š‚m!J…ÄBPöã˜ç>¡à„{ëXdtP`‘âhÃÌ]<ò–Ãf.eVre_xî–Ë6WÉKZ7÷ÉüH±õÓ³’õûoø‰Uå- ]* Ã[k¯´êJÒ‚¶­­‘–4§:¼"Œ4 þ/Ÿ¹íeaz^Ϫäj¥CÕ,» žS"a …˜z\¤ …Rgú_Oê¼Üm“.`Aì‘-‡Ûš‚"å™wŠÔ5OCATìûPÈ*3½öâ©3o%ÒR„,ÅFÀô&¦ òJ$t:ÖT®ŸHMïÐ|ÅÊã;|(”Ýu„D,Éè{Ï'òÞálŠí»ÃÆýTã“’kHšî*îfL·Nèª x¬ž7¿æ^Y¸]Kiz"$Wñ|«ó‚'ód8~Ø“¡#gØœBÐ(”Äɬ%ŸtI¹O0 Éeêbfíh{B„#½JÝ7 iü,C¾—Öy9~¤Ç¢Ëb„ÊœäýzËqt/mÌCÂZyYŠ3mGŠ.÷äS]#‚h…À.J±#™f[õoá~ów)CÆhZ ª÷^‹~ý:èëN ÔpùÊ 2¬ÐJòšÌ_©r°—âïå\ elJùåé‹òëÈp/pzÀ’‚1y)übWå%Kœ7®”Ë¢øR¼íònôi7iÞÌX¨e'…r§À]lAý(t拹}ó-Mò5ù‚wd`f¿(»’^d‚»E–Ç\â@ÿ\šÖ›iH/ºüòC êPÒªð¬Z–À £Jc¦þ\›ÄÐïôwn¿7ÓÍN’œ´Äé­•6_¶p[žu’§™~tÑ3ÌTiNç©kµCmXg ³—ͲÐè©'miÒ½ÂÔŠÄ»å ªŒNw–\1¦ÀúAU› x¿aa­ƒ/<œå¥@¨>*2­ ǪÆ(é|o“l$QËZÞè"ZÖð¼¥zrÍ¥@û§£2¬Ð‘)¯KlHBÿXc —Ÿ¦ÀDRV‹^5F=áV/^jv!⦒’|g®ª¼ñ}³±$…8”Äœf’ÓY~w¤@^x‘BmRx}›hÊ' <•%m±NOK&rëJstyÁ2øl>"ùÍy†ª‹°è;X]LAAþ˘€1^¨ÑR5¥ÐTËÓ•C*Pš/–ªØY³ÕG¯ÚešÒøY9LdEE $ÓWÖtU–•2§š½Ê:#Ì;sÀ#°j¨éË©S.RÁp­ª!ʉ¼™‘І~¢xdHqÍ^j\&0¹`zÚΉÛÃ*ê)JWÃÈJ)J»¬ `­èÌBT2 ’J°f`­ß†vÃȯÒ/– q¡H…6$ †™Ü÷¥Í ¤?¡ê–uC©d­ ”Œ Vwª²rÖM‡ëAe…”£ª‹¼!¼ŽçTíS„m­Ìï@‚ÞÃ¥3B¸fHÇ3Tª°äO ëzÅñsdäàæ“*Ü©¢IÖó©"≟v©å)ZC?$ W¶YTµ¦“PO§VSgZ1P¹¥Öß ò8;L8póGä26´‰41Õe#›'g=¸æûÆF5qf*ûF5OØFÓ$˜4a‹é_ hâW:äÃ;’Ñ}ˆèþMÃú½¦™oÍÓs ôâD6/3ï2ÈŽ1̔몿Øè%<.¥âįP.Î+Y*±H'=|<Ð{š¸L÷Åá<˜5Š’ EÖË;tE”¢±±^=“‰TËð!æOÏ@*q3©L­æÎ#2,ònF)aI"4YIq'Ér<èdú©%RœÓE9Ã:™òit—|Æ3cÊÈ÷ x÷‡ Û R£‘) Ý–9â|˜)ëOV5jo³=cAho…gÎÃ3šxÓ;Uˆ=»*¾‰2…­ÄJõ“1æ (Èx“Y5?ó¸>o:Ä×Þ£þ0$´ÇV4æîþ5þ¹¹<v¯—G™§“)%Ã>8€ÑF¡ô ZÅëÖœ†56²Ø!²Ø¨b^¬—Ž‘> UL‚CÂQƒ0ž˜z39Üß}6L÷NPoömcË_[À%Cupæügl ±)Í^¢1’!l˜Ô™SjPÛÁ-ç…Ǥ†š 6vˆ"Fs˜g^¦ D 1u²¾Zþ‰¨J(ÊN R§a†š|èiŽYÔ{Âã†|I G+ʶ4tn°¾‰V²²D²}KãŠE%])ÛW7”ì±Â”BßgÛ-/ÃW&(T'aí ¥]¦¢„ jíx(ö—'ŽùØ*/zzÏ7*ïXvþ㉌ žüx¢u)a‘³*Èp;DqŒ÷¨8ï¢Y88­[Ä+B›–,½C烟²¸e‹˜E.‡Â~ ò!Îàöá~å!ìXo>ŠgÜÃë­Bü‘' ¨(*XÂP_Á×– ¡nauX‰/|¤ñÉ‹ -HÕá{ˆïáhZ³ö‡&øÛÖƒÎg›˜`½‚ÀOÞi_KWƒÞÞþí§ åuÖ["˱ ™I¾+, )T–‹ÎÐ݈ÖË;O)²Œ}&*ä $\bþ‚N²[¿b ¯l 6®“ ©s (˜®UDg#"@×àgòE§¿L¤‡ cs.™ë'§C–F窳=§É)¹jJеO%󆿀9âcƒ‘9 ûÁ(Ád™ CgíÙ€BÈj¨ZDÓ0×¥óáSÀ•c}…e”ݨ\<›†E‘2oÆwÆ\àÌygJæX’€ÐžjlG£!½ Íß)3RWF1eÌK a$n± ¡p´Õª3–-¸jÊô”B{dÊÜ!,jÀP¸¢……ð7øyŒ*UNír ” Óe*.²óåqhÈ 9ê$¨£át¥ÊÝ-ñ`mÓÚ­d9.~$1], #m]m \ø:j1¾Ó3WF×ݺðIö2}¼a Ð|üùó=Â% •ZùI0„°! “1{í{ÔÞÇŸìK©¯rås[º’e×L;SÖjfäÓúýÎvšÜ rÂÒð)wa¼öaOÅ(Ÿqd¤ËÏS±šnì³™·½6ÞŒŠ‹Õ'N_…d^Y)ñ©ÌHé°ÝU}Ò Ý*± O…"‚½-ýqU¥ø'Ç®¡xºÍ:Ä 0 Á÷!ll¢·…¿»ÀäÝ …ŽÏ¼!XÌ‘G D”KÃ.ÄéMìœ.5v0Fת&o^µCEÊÿĆÁVâð”í `G]K„ßÌô©ÜUæ"°8 ~]œCJ§ß…«%wül£ÔIËýdñŠ‹XaïZ‹ 6´OÚ+Èæ·K+‹²*+Ëþµ~‡T–éÕ³Ñ'+Óî²(YY»d“ÑÜIGN)€àúWº`dr‚$¶-ò¯E¦Ä,÷BMN® ù5渀çF˜œP7![©½ Vƺ:(ßÍ ªèß+Çá!”H¡XJÍ3N­¯_ßíÖ{·ùýmh88$cP bW¯•¦âÃáû:ƒ"`¹?EÉc¨óU”Ž-êîÅkRì6¾×yƒBHGäõ‰C‰À"[š¾Þ{M<žÃ7‘-h7D Á$…H•Ÿ@3êfW3âÃ-~v d0ù'-B…´»ÞÚg~ýŒ(â EØT¨£ª‹B}(îç»Þ²éoatêÃÃêÐSnÞ¶Fð]úñá­ne×ôøðú ÚGBú³;ߺ9¡ÚG í#†F1lk2‰=:ß#ëÂàp½û05,'÷³õ÷¯n>ÌÄçìgP?—®ïKQú÷ÈjCè{Mýglo žÛº¯¾÷<ßF\Ÿ×wûÛúú£zМãéV‹ qâKúD,´÷ª“sªoaÔ·0Â~¡íñ!ª6qÄn!kŸêg”Ge Ÿ°c|N8·ÀuÂ¥«„—¬·ð¢h@uÅÀð;œÿô—l€GôÅílUƧãÃò=~-) |ýRÁO¸[·(Úáþ¥K̰+jÉ;M‡(ÐçSÕÍ4(îËjÀô’pbÓžsÚáÖ*È#€@óœxs-'¶›4M• m@vßÐ;ÛjÅ\‡º¢Ê¥Ée_PÛÑ^xò%Eí»ж´öAé[,ƒÉæEáp xºÅ>¨à_ó 5OÕ­¬Þ#¾Ü¨úÝÊäpÂÖ"È"‹ÿË„.G7u>1ý.‡ÚžžÐ[·¡û«,ܨ$ÝXÇá‚2Nö¡ÿUÊØZÈbDážÐ üæ±s:»ÝëüÐ0D@ ü§¨½)ާ¢a ¼æP§“Õ#,’î^×°~49ø~ºQ¨8Û­îW ¾kú ;——JBç{Ê%¿UØ~µuäN­˜4 ü½¼% žœœ¶,Zw'üªV^7½aïZƒŠl©+U½gÃÝCxÀ¥êå¿/q‚~¹6øºxÔF>.V—§iÉÉ!•¦ØC¥!ëx:•ò"<|úí‹Û¦ð¬cÿÅ“L(S$ýQ$õ…í’H ©/xonÛÇé)µ‹'ÎG_â…ä´ãt7ÐNÐããhT?£øŒÊgt¾G×{°Þƒ3ã=èÿ2öáäÃÈ—g°q›ºÇC¯Sw÷ë³²›‰üþn?ªŸùþÓý&Ã~£ïþ,ª\««/i½w›Š>»kéÖDxÊGµ(=r<¨Í‹ýøpû úçå»_~ýî_¸">¨M|P›Ø¨ÍùôWô±Q¾³ñÏË«9TÄ.á}m šúáéÃR|Îísõ¶kRúgÔ>£úÅgô=Á€¥º®÷ë=ø°òáäÃȇ IpøåãÔÏE7:3ô `£3f³~®[ß…FldæôKÔ¢,•S†ðvë«Bežß‡Vk7³¦¾¤§2ŽÊ<¬Å‡ïgÄãàÊîÝñ9]ãö™_?#æê—ÛYâóêñqsñ~óx¿9ÃáXµì<øl#Áøy¸ÇiÜ^R-<÷3Ň“gPÞ°TüÂĸ½­|DP>"(¸éç{Òù]ïÁzæ÷Àñþm†Úýîžœ×Ôøœý ÎÏ«Ÿÿ\øüØøù¹îù¹îùÆœžæ›—0Ï,ý|a±a°e‹ëÔË×g;s¦¡;ÃPËŽ$çöíû¨øpº×ûö—/¯–šŽUÃŒ³âMx[Öe•¯/2Rýz¾X¼5­Ã <ëå.ÝýRìº<º9öÒ7‰¾W·—h®íóB4ñ¾âþ÷õ¾û²ÇƒrY¡õ×ä÷Í×£éýˆªr„1"{aD¯Ê¦–õ’ÊÒ½³—ŒýÚ³]Óó×öY[·Çæ âÍÄþ÷ùêdq]¨î­ ¦Lu|L#Íðòú >ùQWý'ÌkC½ÓIwûÂT=ÄØ'0¥áÓu;B`JÓŸ´±¹ €A×@¾rAí?7ʨ¬|Ze°¨f9DÊS…•¹;qÇ[†Óýv¸A¥<ÂÔOòÖºO¶§d2`3‹[Ÿ™PöEÂ%Ξþ¦.E-6S"27¨˜õ5y‰¯¬ˆC8 –!eê«-S¤b>e†î+Ù5;F$„ªœµ¿“^5³¼î“éy»«&<šøJô¼Ùu7®V÷¢é ‰Œc7ÏØ rh€ˆü? _QÊÄ[m?¤üne¡º_j»¢x!¸²N‹÷5¥‘nùzá:o*oÛIŸ&?A ÞrþHù¹1¥<0vú ::øóç7þG…BÐþ4H-*Á¢ì¨pj=?2tõ¬ ôÀEC-ˆûOC ÇÜ}¹Ìý'-7ž¼’!‡Dð¹ñ§ÙŸ\ˆ²(OÑíjw翟ìÏ•®cçk´ý݇Ÿ:]‹¾2t… ¦€ÀBÕ­¯ ê4‡# ¡Ø¶›vŽ`#_íÿר˜ sJddalpha/data/gemsen_MvsF.txt.gz0000644000176200001440000001252713162771466016175 0ustar liggesusers‹ë²m§…ÿ÷Sì'Ø5¹NxœTê$îNÒ•r’ê×ï…@04„í;NüYÜHB0—ÿçO¿üúõ§¿ÿûÇúë¿þúëþùÏ_òŸ¿þø¿ÿþó/ÿžó·_ÿóç¿ýø_ùÿ¿þøËçþëÏ¿üýÇçŸÿWè=~…ñÇóùóó߯ ßå+ÄBôó?O÷,ff£tp¥MíçiŽDÓçOîi’/ÓO·?÷>ßÊ^Ç.4_i©?OëKt0ç`ÜÒçï÷´|þOõt´îÊ_kýþh¾øÚoɺ>TÑr´_jøŒ½f"Éó?Z­Œ?>’å+†‡h4ß’O¹ÑIJQÚ¢Ät)Ÿ.¥?24’F?©—Â>£ì•XçQ&éÏo°ÄŒG#4‹Ž"Ñâ[C.«ö~*…™Ì[“8Ƽz‰{)k/MÛyi5>™Ôùýü%%f<»D㵆äÚ4s_Gy?iþ·™Ìp¿Ñ̲='îý`\ZöZQ¡í¢§Áx4ÝëèÓk£¡"ë•ç­è(ÄÆ Eb…Wö¡ØóC3×P/åß“ùå>5»:7sr£taÚoc-5f²æ ¥:öLæy(®.¡Åjo2)_ˆÎ‘6KG¯Ð¦¿C2|úˆIë%}mëïn'píÎ2—îVË“Éx`ämÐdíJÛ#Çò‡ÖL´Êˆ¢Ýμ2ÜEMô6J¿ÔR VïÂ>ë}^¿È}4³ ºLÙ]×ÂÄÓôÂÉy¨OÔ’ç"ÙÆ*‰Ûì6îš0Œ?ÏÒ…e.1:ì&—3‰£ÞM™èˆìâ…99…-:"»êYqrRÚIJ¼Ä-eE!­¬9«Vœœh„õ4ã5/Û/íú^;3‰ÀxTUb8îÕ‹ñî0ž¹†QMšÑWÃ8KÙ·‰U‚U\´cœ—4v‹³èËFcÃM!ÔX¾Ãr&–ìö[4ßYäGÙJ¬â¾]ìµjQã©'V÷ÄŽœL;;z˜Y4'¢&êKD–¬)†»|²ïˆÖ}SÒð¡®ÿ“òø_;—›]ä÷©Ùõ²÷RVjf} Á-w¯á1kZ.º1š³ÍX®bä¬x–ºg•ÛkÑ\iëß‘f¦3à1¶ËxÚ¥t·+@¢·ófld÷ü‰—œäû±uf]j„+½nŸX2Z}¾«õ̬b¡LâÂ5íìÈÊ1ÖñŒ¢¾ƒµ1‹’ÍkÚÓ‡ÏgÓ¸òõ¬²\çyh –zî˜ ÊwýK¬a¼—VŲ¯92~_¢«d‡þ a²Æ€èe%ºzQ6íxé!8â '›ù(–ŒÃÇ:š0Æ8¬réZ§‰[”Ý%mŽÌÐk åZC½Ê¾,;jMÖµF-¸¿w$‰½¶±dˆX¢“dÚ´âYföÚ|ߢdÕ4oƒk¿­0 &b…wNŸqQ´ågdòM6cÇ&3›1›tDš•ZJÑf“óŒX8Í«˜ƒ“G§‘쵩©½§‹x£Ž×] §sœÇbŸŽs ,yV¹¾dó¢ùÒrF×ì"÷:9i¥)£×³Ì5Þzh’ʾo£–ð#»¶¿ëeŒóŠŒë•â,$¤™[{1¤SfÓK‹šË°²B 9v4¢¯=Œ”F<ÌFÿÁÕ•2˜códr­óù;¢]âa5‹h ŸeǬ9+'\iž¹)m\öÅÕIu”|qýn6QRÄÍÍË9Ôå XB!í¬œ@„%g€Ñ‰Š««\þ½´ÿbàP ˆÜÒp.,iœg'Ÿ©é^"è¾Ì`Öì¯ã¦±Ö²úYX²Ù^úTÂï0“Ö/ûB÷Ÿ°hƒ†2jà1.‡nœIÙ©œ5ïä \Çd.ýÚ ¥²}ŒÌXÃêþ#—îVšðˆÆcLÙ–UG=„Ôӆǀɤe’ Ö¸.mªíO»Œ¥­ã>î|uóX¶»äGQwNýžî4Ûå·|,ÏØÌ!d;¹LjpeÌ´B¹Á¹û`GÉv»)¦Co7‡>+¦ü×ôè‰}C¼zå‘ó¸ù~ïÓÃ-"i篒=Hz•½Å 9_Ø%.(Nnô©q ¿3^Pa á4:é%Špþv0¤[ "uò<Í4× é 7B_®w^Þp½ïE§âñ —GÌââ­fSC+fH"›-ëzt´bÚcÑhãƒx¼_ºQŒ:âöì©ÃL’÷ÿx`ò;ù©(ã»û¨Ç&@ N ¶ÅÊÁªÒç-¡1ûÎÖ/Ú¬UZ\"6%³²(Ål‡r¤Â‰òSä‹·EÓ< ÒóJDLqh´àc…(óÄñGz†þ Óp‰LØM(TïñÙ”•t ™Xõ‘¤¯|ìo±Ëw¿´#kôçâ’ï[ 1.yÍÚ;ñÂñ9M8O^ñéøb–w½°aO#Ús™ÙkWK66*±À»»ï ’Èž»öÑr/J±Ò¯gXã< ÛÑÌd·ô’%çIF9¼Æ0ŽÍ1î»Ðf[šŒûþjß©Ny5¶Õvˆ5[¶é¸‰­Ì•–‹¸J,-ŸºX—y»ÖiFÓ/žGϰ‚9 ¹V9P†ã.G=+”S¦¾IU8N™á<Ú@5ÄV8"2Ñß®@Wð,å3õøÂïLTZÛxHTRUðp¥A®T¸ýù˜0ö6QSmgÛkJ—e?ÐýµÊ`þœ†Z¿HâÒž©À:1îŠã0‹Î“­µ®)‰…êã¹¥g½^X¬íTWz\¥vQ‡‹ŽObP+qø‹;0—W?Ž5žö#uKÖ/Às å4({b>¿Ìh/òd×[ _ó˜+i0ј’¶dŠ÷™A,vý¦eß{fMÕ{L€ª¥£ËIj@ì¢Ø“bVÚ³-P*¤Àh+Ýê‹4§¯ô°Ò¢’[‰`Õ)ÖØY[öxêöÐdš·4µaVî4ŸÂ°é×‘Ï f½De½™èû,útÛž!ú݉\®Ö+c$ à4±j; iv²Ì/öj>oB_²&}½®-¤Ð´nÐaÒ¥W÷”w×Þ³Tch´a·J¤åÑ÷PlãÛ³ìfºNÝ:ëûm¿:ÏR´fm¥ƒBã%ÜYk+0Û÷=nêT·žÜšÃ >o‹’:°²Åñ~ùÄ3ϹhY þ-P샙$ª€ãréÈÆe}*–ŸWѨàŒÖ㬯ó(í„ :¨ù:4ÚX²Ž,sbìòÞOÀ̹JÚ¡OÊ+ G ’Õ¥à™/Ö«.…kMœ©°½Nà»Ì½NB²}Z³W¸WÕNÉpƒ¯2‚Ü ÷¿ÍjÎjhÍ$ãSgÕIàöX•ìçô¬yq2L?‚«cZFôE»x^Î™Ý ±Hßwd¸WÜËKJ§Â#XYZ9®<™ó‡Yû`6A à|˜ï—Õk9kâý¢•²>Ù°3Pðü!÷›'aì—·M<ÕnCÏã·=*­k3‘æóÇ1A싽ÚG/žª„)ÜÜgíFê:-ý}>ÃŽŸ­ü¸9šÙUVh¼Ø¢hìý Ó(iŸkwCe-sɱU×’j²3Ÿ!w=tÅ«p¸,ë«ÌO‡ ÊwGêôg°Y£¤Ç¸m“$,ê»í:.Û’„FÅgv©ÞtÜ¥¾¨ÀmTԲà Ý/Ë('?¯÷¨F3g ulF-p*,80ž~B®èU@ro«dåæ—zàÙ@Êf=ýAOõÑ¿;%꜇üH«3ëtºµ´_gò2±iíƒí“uÉç"Çh9ëç¡ÁMŒ[#_Â@]`´>³‹£yðu“œl½€ïîé&o%žzc¼ËþŠÄ~Nn,R_#ZY]ç[:\âÓ²½ÔV°èùµ7/|­ÐG<íÊkÙ„€ÉòÎèK¡/´bW´¬$·²”¿Ìv4®}y(nÎoËðdwQ¹;×’yŒóK6æ“ógàÔ5r,gnšªîªCêº}g4 U'¤a§îÕ™Ö—r æ‹®»æ”¸;ö®‡*§~í(ö²€_†%„²‘;!ï]ÂË͵q•øp/Öv?sYº|Ñ7nÉjgHCâ ’²5äŽå2†`U¶Ôkü£ŽA®ö˜¢¶+n…åv>àB[î§]Ú<èÑBY‰J?ä†V°êÕ X¡%o’Ò1Øg{_t´1*k%áf¢òÁñ½U²ÁŒ¦†ÒOÚ|þ“­vŨ°d¶-é”Wfì뚣 µ^Ò‹ÅÑ¥ÎC•‹é¸£âqpŸ¬Ñe³ŒÄë¾°3cx®{¯«ZPô„Ý#VI_Y#.¿d°»åâ· )vÕ­ÙV½e_1bkv툫ˮ ÷ó%犈Û<é£3?b’fŸUàXb¦)x¦cº;ÑyüzsµV®u= ‹2vKçõ.É.-9öS}¼å8Œ|¯e3pì–IÀe5`y 3qÜÐò»SBØŽ†"•غs$¶NÄ–&Yõ/!”ÓóI„ÉÑbIbÄ3]ÏL‰a’È÷ÀcHLsÚñ¬³€äÓÍÊè’ñ{æã˜m[t ! ï¬dfË—Z:b¹)Σ±uÒ´tž»«Ñ³ü^ʆKYîM¹ŒfþÄk­®Mc˜ô›û£Õ Åöõ<˜Ååü,Õ¡ •÷ÕP~¿š+–¥ùÁ(±u¸©^6`ie…å4¥gé+7ìŽ.Ý䵤eýV£| àØrB–F[Zv³¼±éÑj5ù^ÇshÈD_«7ýq$fé±½ÔÏüQ¿úï§ØülkÔ> ]:‚·o8öý†.$‚òž÷KZ×VgÁ¯$ÈW ju Djá!š¾Ž5gxOë²'tr,,9Ýi>TÆo#VåBÇ2ã) ¸Ç—©f7ÕÛà‰ϧ¯m;çâ¢Bç)FY}+ô[WYP^?nEµÃk܈̼n}ê¡ýŠ¥+ívf#̰jœíEt‡EÇVtoiú ™‰SKDó¥í²Uli•-Õ_ØtÅU7ÚäY¹cÉí`‚X«Än¿Å šÍź5†ûc¶ŒI™ÿ,[O´-ÍÖaàn FT¶lfj Õ~’m ÷¦ ÝÆ~h]äÃ?KçWЖ½Vóç÷e×ÙìHõ‘v¾0ì‹‘Y¹1kŒÏÇZ!2½5¢íRº]ú£'ÁMÕ•¤ Cý´ÕŸÈrãu5¬Lý˜úx–p÷ÀçЊ˜'HÜ©ççñä$xÝÝ<èFôÒìΞ+ÄŽ‘qÔ•ö¨•­A²¬_ÄB#VV軘žÇsó¬<Ħ% DÛ¶D޾WÙr•uõvtlÊX2Ÿ37ôŽkDwJ×ÒhÙ~sík–&b¬.vÜÕÛˆvÛŸ®Ç:f®óÖ¬Ù†æy+¯ÐÐ@aâ£öÕ{ðˆ¥¬ï<,EfßUp;Ë¥•É…ëÔß5²4Ë}‘c‘ÛÎÖË"­Wêz_ðÀO.̵S®íT[Z÷ZgÖѯ뼞ÅHÌ„íúÊíïù…š‡äÄ»7b¯-ëxy”«B?wÆqÜŽmùÛê…%Ï\Æ/fûûl–<;äóûlõÐ{Õóë'Ù±oÒÎëQ>@_˜k¹[=( Á²õqÖfû—Ú²gá"—±÷Rß»n -¥õº?áÖ]pX`öbä–÷Yq;ç¤ëÊýl¹1 àÏ£Âxa™YºÈÍ›Üv¥,›ÑæÚù ¹cññ©nbjÎqæ!ªc1ëè’&h¢ÓýBù4ãq*±«dGg—ö«Ò,[?ÛjY²e÷áb™¼Ù€²'GÛŠ¥r’m_càîw Ì’mÛç^Óɳb‡Öƒ";š “cà•®™G}J_/ß0B8o¦[Åw²çG;Â0›§={âdEqõ;É,×}žqiã¾iMfCÑzi§îô¸®Ñx¥}ÌÅvÒ>P>/ÑŽG¨óƒ»ZQ×Ï³Š‡øó#´‰ëÓ·Šs»¾¶.vŒeµ”ˆI4©¹WlýüºÉqØøó«‘e3º¯ýC«ÅÖú®Üöòuì°P/r\ßûMÞ.öƸt³3vŽ·™i·s¦ÌË­w›¶­µ\‰ÒzÙYfïµÎf[o—Í_G‘W°^º†:̪՚þ\٠ţúßc£= ŽIÎ6ÍèV½ÄôA,f×VªuyQ³gpxXIÌ®¥ÍR™uFH+Ȫkmõ0xjˆÒiw$ycÇ®‰ØFr+e t;Èñ<ÅPÉff;„t~þô|êøà<Åy™h: þììç^ê¤äp1ß§ g=I¸ÐÈ+9[oKêÂ’c×ö+ú/\zNòÅãã^z°ÿ'ÛÉ ÃlnQsàÓ%Æ’âÓîø—UbÙú•¸=¶£ K—å%Q“ûË­D,ÊÓ0Ë÷»:ϱZ&-; ÒĴʯH8†­èñÎ3Öü P:ÑnGs>æªL7Žû¨`¾Ô^—äöGm8î=j•讉^Å ç­Ý#ß½x’«'´ˆóÁËú&`ÖûÿcNûŽnddalpha/data/diabetes.txt.gz0000644000176200001440000002105713162771466015542 0ustar liggesusers‹]\ÉÝ8’¼Ë Z ‡}9å¿%ƒXøêƒº«ê‹$ä™Éÿò÷_ùþ«ßíû¯ÿï¿ùý·¾ÿû3¾ÜÖ7ËWû—¾ZÿŽ/ýe~=}ùOþVÿÆøÊ>?–ÁkÏ_Í_ú³¾¼ê7ÚùéüXÿV\‰;]¹yeývûÊú{®ø›Çü .=÷®ók OÍc}­žßËß²ÖY¹úü×<¾é[w>·¤óÜóïê7–wžƒ¿Ÿÿ&üzÞ¢ <øÜ;w^ˆÛsU¹6¾ÂŸ³²=¿™¾Ö¿Þê¹ßߎßû¹!ž{^©ôo]®ŸÇôv~;νwÑ'×”·×„§ž÷ðŠëâ¥ý¼cm^SÝßÒ¢ÊqíÙdzWØÃoµEa³ê>‹ÚÚŒ³‘kÿòìØ…»¯sHçÚ?óË)Å kÑm56c»~íì|Å{ëZ¡®w£·6ú¼.<öè¼ÏwNºéˆqèç¸î³ÑÅ–ÕÆ«ûÙh>úìç9sBç=Ë9çºyùLç,&Ígo¬ÌçÔðÊ‹›°¬sÇíwÚ\s;knXÖÙ…ÌͤɞEó˜FÅŸEŸ¿Òht°$lç¸oÅíÂa®örÞàXP¦}uÝÿ<üìÖñðÆ«¹VîÉ1 sçºÜhö…û}¶·`OðÌþ-ÖyT)ü ‡·†eÏkEM' ;Yú1íGŒ‡Ÿ…ÓŠÎ; Ù=ìtâ>Üï¬/¶Î[•Å ÇöÊ0ØÒ¸kexeõsóþ»y’ WÊzÏ_š‹Ž åIæ?I°üc#qGÏ-έ±°}¶A†pv­®»cÞ’¢Âq¥ÂeOüZøè1ÎfÃ] N Èopi?O;&"—˰|Xï±Ó*Ï©ç’>dbÇ NÒyV­«ÌÌ ÄAÖ&Öï=¶BËçžÿà1M:ûYÖÒ¢gÖb+é8°ƒY²¢Á¹ü8g¿)#9F×’ÂÖuž„¸ÙÊYVþ»vÅ:éVçÕûŸÃƒû¸ê<¶‰Í*Ž#kè §bÀÁhš´žÖž/GàS¨çßÏú“=y!È6¹Þv¢—¬öüœñ»ŒKÇp6‘ûØaXˆåpdüJ_='ÆÐw nÒWO¨«‰ç7jÇð`ŒÜ)n.àþ>³ý<|V>ÛiäFó¬7>®uìãìd=‘ãXÀ´3ÓWc–—xZmÐê÷(ÊQ‰{½J˜ÀÙÿ¿s@ÒôãÙ ¡[µ´¬lpÖÃm)a;o?›–µhYÓ^,“.°@Åës÷Q"w%Çê:”€öóÂñ½"³'ò Îûæ†ÍòéÂ;…Ÿ¿6›mÃqºøe6¢/íŒ ‘n†_íþMƾ˜y›Yþ/üeeZéVô~la§K&¥‚ÇV/ü¯0D+Ðn,Ä¥ìUé(Õsñö-ÛI³ò„cýÉ1ûUõÊØ¥óV¼97¸+VWš"‡3^š§´G˜u‚7„¬Ž++ <_Ç7ÞL0°÷³2U™Vû$¡Kþîj‹O¾(˜å3‡g_OàâÙž=/{l#WEœö» Y8Œ QÓK]„<çˆlN£Ã•è»'œ–¥×d²«Žú@+'½h[2¨‚Pêõ&ZÔfN¬ÅÖ¸ô®8›Dè;‰LšÏZ˜|ò‹á7#zÃæ*"&O ÌzÃ7ÐV\ ð1`r‚—ô¾qcÖ‰W½GÂÊöúÌBñ¬3úøä Üèø8–I8AAcdEœ@ ï=‡{2'c=´0H.fG«s-Ÿ ¼Ìk vpUÎÊÐÏ{L‹§á kŠW:ÛÔ€›‘KR -õfhª”¶dw}„¥#E#ó!hŸ÷Râ¨86ƒµñBÒfÊ)¥OŸÏeÃøsèŽçGŽz‹GÁ+d3pæfš”UõB…ü Ç3ñÛ®v”L¿î$¹—x¡•rÜù<2—e…¯L†8‰Òí¸¬5•½+|¢¯dSúDEîê|£ãÀˆXLgÕٹщf¶gSãZÅ`’€s𨀓³Î +ÀYHm`tHG8㫋Ωá§qñ]r`ẎÏ3èÂæŒZ|«¾–2‡Bm€Cݸ#zfÒ³¼`†:%)¾wZû †ýð=M/~‹=¥È6_æ8 Ë &éô9ˆÝ·Ž¯wý>ô!”hî[‹âÕ#…u˜\T¥i³Ë†,ZœÊeEÊÜùÄú±õè~¦¬tÒ…+yLtÇSÏò»mÛCa%™˜à€›RRëF,™¤Ö3Ätóqs :°q#˜?¯Õ¹ì Ȇ ëB?Ü{žÄ1œ°|˜Àd„ÆwõÜœž¸iòýçµûÈ"+´L:?Ã÷}2b^å™ÜlBé'ÜV¾Õäî#ò Ó³Ìs<"5Foàqnˆ“It¨ª°—Öº@)%“"Æ ñÄ} û&@ ¸®ÜkyäÒ[ÛíLUˆ¶s»1A á‘°¡¥´xþß©ØË.ç=úy1ñ[uˆQâK…™­ÓSG ÐSÏá*ÿ'þþÐÃè„Oª§K/+`ï«w¤ŒÕ›“ûtXÜ`s  óá´töŸø¡pцËSà«)dyçt¢ÌnRF‘ N; üõ'XÐ:>Áó¾ç¥ÏVözoqúÊ32`|=?4³ÈÚ6#å%\àjÕ$1{5ùõÙR±³»­;55r2°½âý˜ÿÀßæðÐÅ`•˜­J!AL¥?çÅ£)¢å³èUàMÄ«?H_úˆÈ(7VÐHÞúìc CH×òmD¢ÜL|¼Yl°ëçÁ1gr ŸåIa'fà+7½É/çB®s ßgV%"‚õ‘d_ÏxŸ¡˜NÜ…¸àú±‘3IcËÜŸ}·r7Ä"w¬kõëRŠ@U¦áIôÑz.fÂ蔌²•Mò†‘;K¥»¢»!è× ¦ä˜¤½ÉrÈ|Îñnò^n4#èÍÍ*æµpdQYðÚrL¼Ø(_ÍNZMi– œ5brÐîìdi .œI§ m$5ŽÜ~3cñ¦f‡ü(å¢'¯%}Šº¼ÂÉo ŸäËõ–eÝkðH~„ 2¼q!Áq»!˜ÚlsVæÍ÷b}_‹6t†9,úÕÐ>zaÐìÂÿÌš&eHÚU‡l£ST[ÔJ¾z_•3ˆ£tì…/–êÀUE` s.’޶#PJãvA_ ʪRäv겺&÷&\FΪɉ1éÑB@ 9CF ³\³Ý  Yö*¢ÅC9Õ‰/¸¯²ÈxÕæã}[ 鋿5¨YÇßË/¥`>‹pŠÿ´î‹Êí$ê/LòòDýSbvaÜK\#>w¥ ÍÄyn…Å®ýÄ †³1ïG¶í¦2’¹wøS F€”»$x.ÚV¿ªË .»XE„oÒ]˜†N S0¸¡Yf¼ Tÿ`°Œ³0Á²±0ˆ |ü„f‰v¢¨”d‘>·‹²ÝˆxóCä4ä:°‹òYõs ‡&áý^Á„-Ÿ‰÷ž§¶¹¤áCÌ!>¦:¼õæ$±ˆZÕ¶Ï9eä««çíB2f*XÆ#R~²ŽN†+D0¬8fÿd¼«%* Ð9nž jÐeB{éÒJëEÙÞÙ|#ºˆ£P…’p®>ñ»î|ì2°Fëé_AГ›8Øhg‘ ‘·ÚОÔ¼q28ÏPþ tÝt^"WKG»EÆžÔ[¦å4¡µ&EëœÎm“!1j€¤:%@SîaGLU±©"1ÖP;¶=š¯¾``͉êRjqyù…JðÿÏi•—%KÀÙÙÊk~|jk†6•y¤ÿSþk’ÃÄ97p¡öãr#hµ€Ã„$„D"Æ‹#æ^nEþϾtÜE¬)G)düƒ$¨Àî„’';¯›jZ1DÞâèü 6:*Öá¡À)^ξÀqõá ýú_WR¢*âXÞ@[ BÏšI']³àa«Mx"ÂG‘i-[¥@Y(V0Éxbææ¿\Íe.ƒ‡RòMèÝ…¿O#•F6²˜DL@h0KïÊÀRDýÌž=ô¿L–2ÍW.[®Ç/»¾ f² šógÙÆÀ•8)`À†QÆ'ØÝöG,)T®PÛŠÕÅǯêÕCá)·?ÔÑ„èÇŒíÚ›$Il`ÅŠMgWW… ¡ÀBQB‡Y2äE©¢„i‰àišdÈâSàA²*í¶çD“#UmðçÖI0E ‡qV& pʕɣ6ÓȨfªßú+û…phíØo뜨D¬iƒ€ Z2˜W(K¬z*xH.{\`tÂŽ(úÊtøéJù*eŰrbð5¾1j{“œÃZ/¹´·l\ÖBb7Ë›,7šéìï–e“ý*êS#/Ž Ä(!¥Í{¯K@»-âÌ;Ó´ˆBFœ}Ø KU /Šó»¼_èa%¥néÇÝÙ|iS,2ߤ|¤H_©ùZ‡a›x5É4nH°ƒÅ;µ O«í’`ÁäJÆã2Âìó×ò>«Šú Œ`ò%%©/³Ä*cÉU9=qO{ú=`¤”S†”oª<ÄNBc ¿F¶ 8PǬP.ÂÖÐÅÀ<\2¥¯’~“%3š"±øíŠçCœ 4û¸ég“ºqú˜”K+Îc”ÀC¦ü¢ƒ)ÔoY­DX‡ŒP¥w093¢mtæNÄSçíâšdi½H=ÁMìÛ@ey k¿‡H$@q¤Œ©-«*ëˆá¸!·'*—å²uÉcVÉevДE•ùȹU\79fšDþ[ÓyN>Ü|üÃe6&@¦z±±¼;T£S5zõ(;Œ2^\Ú†‡f×'˜k`.ÿ1ßx¸»#÷@¦{»Q@u<*I¡vÝ  µ™…Vž¦ ¨ÞºŸª'Yñ c¼8ÍBÚ¹²ï[C”{X8UŠè¤–ƒŠeúW³ÚöÎ&¨d³{‰ÛTê~BDpióÜøgKprå«Gu~~&¬#êÙ¥Þ¶`11Z¶õ.²„,ðÁڵᔮ!'‚u¬TOû2…m‡„i‚’+™iq¨^¬¨íŠ›Ê¦­ãMzúR›Õ¨l­Ž-]®åFÛTYVõ²äá'©D8Õ“ Z<Ð4«_®.šÖb @ =TX$‰2.}ñvHáßçíZ»!X“ÑeSAúJtS} ¨å*_£g¥ZÞëvkmgE³ÈLøA¡rKäÚ,¡ZoñS¶zΛU,< Ûßœªkßòu¹|Ë#e_IPez£)B€å6«Íg8û“¹¢6}R[ÛVO6ôF%ÑØ”%3|•Ý)dpºñ Yð\>Þ‘( ÄiîM‘µ6‹… HÛçÞܦ<£šô¼´£DlìÛ‘¦è¾Ê©äb=LÎE„·¯Xv§«lÊJ{ßWqýŠÓ–ÔŽË4 _Ç”;E‹,,K¼ªÚ¶<¿õ?“èc›6„fßTïȪ.RûÛÊ Wí*Óñ®«%’J*Ü~«zG+œHýH`Ãð/UúÔÒhêI•jYC*^Ž……­É±d •Æ/ôX—ZLÔ‚Ó‰W*lÛ[¿ÅÊNâçz¨U‘þdÝ^i/ÃAÁ_!º¦ñê>•áÌõð[¬b•B•CÕn 6ýE2¬Dw?CEõZìQÚy OS( ù É'ÊY”@Ïs•ÖsJW¬+ªhÒú2‹ª ÙZ$â]£€Þ|˜ÛíeêVDm‘Bf&| %iGyv0¤Ï[éi_Õää…)é·©" jkybWžU9@oÑÙv¨ÙÒ‰ÙGò~ˆå‡rõÇ^£øHbR]ÌÛVsv»%-;%{xIز|?Ù¨Í=†ZxÉ÷÷L3)B†%ºùnw´üO¿Ž!Ù"}×kŸôƒp×]ëh &ƒõ¬h36LÉèn倻¹Z{…;Øôþé¼iWO#²LS¾'‹˜Nrèí¨ƒè÷x›^Œ±Œµ’…À2\øèë§i‹¨ýo–* 32ÚG ŸÅ'+ÀÕü .÷èëÙM½ .Ô¡KÑ©F-!Cš]+ÂJÔ\´n c¦+Ó;šÁ,…·‰z¯€ž¹ä! œƒ§’zƒ!À×áÂòX·âc¡-Öq1Y¨ûˆÇúyª*µW'¾jò‘Áføn^u ¯ öÜ V~¹Öm»YW¯lGpŒyç“IœÕP;GÉY µŽi®:îd)I–3f»f'ÜÇÞ‰åyTc«o9$ÝBös×V­‘C²4«šs3ö $;÷²‹ÁÞðÊ|Ôf‹åQ0sÝ‚Œ§¸}ºàÙ»ß%«å'ãô&P‘H,7fI•£XÖSŠUk0v(õgó8szŠ“™S ª|¥Ûô¡Z ûÍÜO>ò£åD×J‡.÷³‹Æa?wg…+ý¶’ol§ú¨ 'È‚ÛxéEF¹a²u›ö;Lê™J ‘ °³zŠÔF4 ÍvËô’m0ÈvÛ¨…Ž@›K$y])½ÔŒdߢ…0‚‘Ý"¦Ë,&qTB&¸(_dV™,(ö2/¯¬;Qð˜ap—ÝäîÍNnÝþÍ«R¶£øèÔÙo+ª_‹>U‚•(èŠ.Z® Ô0mX9ÒÓ`ê ägÎ|0|AbSpQ,l/~¬êÉáHöÛóûÁ7*áQoq /Z —„¤«ÊÂvïb¾˜ñÿõRP"ÐÁ/bÙQ)toBÌD[=„^ pÖš.q’¤X§`§' Teø£º›uÝ;6„ôå*:ÒI×pzU%8›F»ÙC•ýU~­Í»ü,¼™/¸º567f¯*9ɪÀ¨;Wè¢{=ijvënW»/ÙUG•̣ȢYÖç\R–`À5;Q]Í!ïnªšÃu¦Æ¡NÈÃGtª:ÕÜ5&Û\ŠR?J­pg­ÁæoŽáKeWI*TJm;xŤLõyRaº>Z#ºˆ@L†í[ËODƒ.ÍHçèã’X?8:¿S6®Wr.ãöÐnÎ0òR¹3ÀÇâ ÿSŠà•_g¤äˆÌÇ3ß>Z¥"“Ã)iÖiÞJÖ/¯·!„^5†7•zV¨Åbõí¼wü€rË­dí×jÁ©‹­–Ÿ.5hK}_ _cþ¯îÕÉ kr˜Ôš ¥T4p|É;¬g}¯0„²n ª,]'W°mxOqSC6 ­Û&ÐÔŽÇs¦B/rè‚Ǿ4|‘ê²`Ÿ2iØ ž´¬%÷¨,–èSKÌGå‚s£¦Èwð6 :•ÎPOF¬n÷lAB=m±¤ˇPf|Ëá)¥”Ö}¼ÅäÒ“Û¹`Q|¶ÙymH&C<çüÀ×r˾Þ¬GQ!¦D#=¤eÛ+–y•­(;’äd•JhCgÅíRÖ+‘Ù#ÜÂoúÓS§Ic1$?¯íM¦ìGw«SèŠzd{U%Wý4¥ç:º{ž(¹q×µ "o»†jœ(ýä`ªžƒÂ7÷ÍÜÆƒ2f(´sËR$’®w‹)¶Bˬ®9“¸Hñ¶AqUƒKðhN‹Fæ*Ä¢„¹™âvº9/Û$Û©1œC“9#jôêüY›I† i!9»[íNäüÞ‹üyAÔ$B¶ž'“žy›ÿ•”hDÝ®zÍ~¹A›ÑKÕNâŒê\Âz»UÝQÃÓ­§e9æ¬Æü†8ˆÿx3k6xÒžC‹œ×*»«sDÃ^xÜØh«Ð‰ÐÍ2"£QbÈhÇ zÄVRn4½,ê*qÃe½râ`0ýÇ–µÈº¬)mt„bTnc[ˆþ=Ç^ItÑl¤3a»gÊuØæÐòv.Ö'²¿‹êÜ9¦ $Q+Ôçue÷¶ëKYù¶0»Sxˆ][k>ÃÒßÌóuÍõ©r;PDqíì¨éÎ3º^wÀpßµ'ºgTÚÔƒÿuy2öJéèž<á[ºè[ð2lTVš0gŸ·Ç3+E"GxʬDƒ9q¡vqÅ脘á–VÛY ï¤ôµ†©¿²lé2Øp]ÆM÷bIû69t&=UV¶ˆGy¢Æ*]s·ìÚŒ ìýðý'¦ByHúÃåC°Q…£þ;ãÐJîœød_g~ÙÏtpÚñÊnŽP³¹v沃xºJÁhVÁäÝê×ò…5K½ÀXàs+?5ˇjn4኱OFx÷á¥}Õ=Æ{äŠfUÛTÞâ® v˜À‘ÌÖJ‰fàõ:îŒ;¶—2×í+b!Ö¥,(Ió‡ì5kÚ §yÝÝüª½óN90žfex9ÜâöØœÝ[häJ&ž’Tõ%¾•Ï< ,¹<«\`ˆÙÚDÔ>ö¶oΈ§-ú]‘3-â··cÏè¬ÞùŽ›xf1åÛ EV£“0Ø™-FB “¨-`§¢VoZ¬V(¸P¹¦‹é‹fe¬7O²ð÷ì±3 8mvešIJnª1Þ3õu7ÿL[è3 &njŠ˜š=î&ã¡ËÔÚÃÖ´)w{‘OûZ\V­÷×¾¶’Ðø@‡nr›®U§¥FáO“ŒjDÆ´pPÔõSÖbqo»AŒ_¾¸úVô´´~§¡e·Ûãc„¼â¬´ Ím°¹É2eYw!À—ùHIä©ð,æ2 vQߢ·¶Üåýr§Ý’³1kÁ­Ë£I™q/gÏ"2ÐâfG»m3mÚz#æ÷Ûhmß©Œ©ñœ©b·‡Ãºh'hýn¶Ðä´Ò¹¯°]'få÷üÖú+³S‹Å#%ƒíÏõwÏÊ*ºYÉcgsWï%"Ï"ïàÀzÄ ßt~`Ä*¸|Ðê¥ê"ï-7ŒUBYÿ›°³´½¤AËB QzD®[½ÌbDMã³YÜ@+òùpùÞmêº5[­bôxú×t£ÏOõ7Œ#Ò‹¦0Y\ñšHù“âtOÎ}ŒÝxßY÷—ÅÜâV µ½DOâO¸ßÖ#Í……I7þ*К;–Jç±ÊmïjQG~¿_:(1Ôžc0#« Å>‘2à:S¥†÷;ªPö똜ͼ™=·Vƒ·ç3& ‹«ç4‰@#&Zº­Ëi7>^0ÝÒßQ¶£Ñ”Ÿ)ºcêæ"QŽyõúxÓ5pp[TÇŠ÷Æ„ˆÇÌ_;¯:ûÕ†¸¨ë£‘£[¼Ú\i~ÏÈå³('a|ØmDÛÙ.šŽ“5vïnžUCoÀÇùorólsóBàž¢ª¡ìº½ñ&l5…ݱùÍe gð~K£Ž¢”bÌÀkšP£BòûÁ ÉÔ˜Vš|Ds=-¾³Ù‹§2jû·hþ£2 nM¶ü=ñóû"2Úºîxqþj†–;.¯¸3¹›®¨3„g9ŒMF “pJ€·ïæ•Õ…PÓk/]Þbk—,¹@Úö¯ˆñ•¯»§@1L *ÎßÌ2hwï qu”^Sô3e5æYž»ß¹°²~è±IªÒ8s™ˆ>t¢” »¸Q‰ñÙ™®U1! LÇ÷tÇ»f¼1ùrKmwÖzL÷ÛÁ$Š>ðÑÚ&RW§¨ "v÷PEÎQ­êò..òkŽ0Gs©ÀJTÈr½f°õ5$UÄ£¹ ¶ßQoK iˆmVLiØÕ4jÎ(EQõuóhI?ú]¹cj *ÁþMx[ùíDä–ž[\ÂÎmgí$ÐGižû.l5âNx9å5Iˆ šE}Ô´‡}§»©L²”9-dÅsÓ?Üè͸ÓiW‰ïÅd}4Mí‚|Y³*¦žCÏE°Ã¨ˆ¿•Ò]ŸÐr§1Ýd=êKšG”âåùhVú\ó,!.k8ˆá>Ï7¢Óýý޳«”HÕ~>°ä¨ÑUÞ+Znq’vs>T4ðÄÞp¨„ýC_¢ë~N°}û@—…ƒNÔ•á)RÕ¨®mD‘©E1Øí,Ÿ¤êÓë) çÎW ìÖ˜È±Ô ÚÊnT)оŸñÃøE“øvLþû®!0^m*ßi±l¯üÇ~q2”¹……r‹²X×çA4Ó¤_ëÏ'ôå 5±ø›DC@Å<}v‘°5ÿü3Ý"‰g²ŽÆ K6n¢Oú脆l4Øz,±í2|Ipêïm¯%H€d7Nµ¹ èm Ãî<±°²n(r™G¿» Tk¿}äéðæO¿ 7÷«êJ ‹ ühÑH‰q«Ýcˆy­Y‰mlÍp]Cürß’yºyÖÝ?Ÿ4iüºÆºm„ìØ·Ð4¶‡÷3›êÜѺnÀÏ !9\ÿ™ˆc‘Ú“@Îÿ=`RSƒ®‰§~Ü©½ï]”+#¥Ôh€ãiÿóÅ;„(7«Œh¸-Ü%+î|4yT§žkò-Ä–’âkYܼ.5ˆeÆô9ßwøî·+Ý1ò(9ŒÝƒ§åèpѤÞhË0Ë p×裥ÙO N®™©€]×ý¦MٯᬠÏcB±Únšß·A*vV㥖_ÆÈGŽ]_룿Àð MJ–Ô£ÀqúëlW‰ï-­¢N.wæ¨ ²êå3«y¾q›¦‚Z¤gB‡õØk£Ï‘)Î{}Ûñ­7¢JKJ×g¡:û«yü†Cû=nÖÝâš8_HVêˆFjœz4MQìw߯'!º&°>'$ [æmöÄ;ª¡DÝ)µ;ݘßP§¸qE™Ëޝ_Uu©¤›„L—T©¦ñÏæ¢-[ùåí£K·’’Éd ö7BÚ[[ý{„0&„Á —Ü¢÷x·&6ÛÝåª2år”ž{”Á†>nS¿ÛàÑÈ3›V1õá§ êõ}÷ä|øÛ6Û_¾ËàU© êsñ•Ùn#]”Ûu””žÂ!°±4$§@ÅÞ1Ç‹–~ Hå×f™O¢JΦ„¤¹ÁévɬæuÄÑ>ãó+´𭨈üMëæ€©Ä_~ÁBŸÀmƒJWÚú°%Ga( "֤ŖÖýÉxÜÍ­šËø£s—ºe"W«$V9þ ˜_~ZŽD!Ò¿âr©×/Vö'nе¥”¬‹Ëß MßÕÖ”R]~P?u‹o²¥b'—ˆãS†ù¶§–ú3ì ô¾B$Ó¸•I%èyÝ~Ÿ-6¦œK#üÅŸŒ%^ ¯›ã¥”™î÷¦<îÎÏ` Ưýó-nn£/¦Ñç×îna £%£¾ôlnõÎ}ÂÊ7Ù^…Híš­_RY^µÕU DÎòìmÇõTCôbý?m|0 [ddalpha/data/ecoli_cpvsim.txt.gz0000644000176200001440000000274213162771466016436 0ustar liggesusers‹mXKì*œßUd÷´"jÆo½ÿ•ÜXHAì7ÉIE(Šý-×·^_¹¾íúêõߟÏßv_Ÿ¿u=´¯·öãy_¿u|~5H°t}ÄnÁºn’Û¿j]ok“˜¨Êz__u}­'õ¥An[ûŽòM8î'5â9“ ™áÈyzst "“´â®š¨˜‘½OzÔ™Å0Öã³V”–|Å>¥®âà[$Ýo~Ž‹jðаo!Øÿjð¨[PŠ9$®Nå ²‰nê+±ËÖõzp å?¹¡D!'G»¶g­›*3 ”ÛÞˆR‚öÌ Ë³êªwtu‘ƨ«¯ó3#\õ+›æâ”ÀqÛ€övÛMw•TÚÃîéŽèÂ^|} \íd™¨îB¢?–*=þ ÿén›ƒj)…J.'‡$2â¦$ƒ0}@ûéndÿABÜ€`§n‡Gû­Hì"Kú›G @#ÞàYÝ òpHÄ#m2Û¶?ûkNg`ÎëÆ"ʧ;èo‹º<ƒÌÆ‘I‚Ú®]Šÿ§¶áä6ï’}µy”´yd6~Ö_ó&ƒ„eƒQLV¤]r9OZFûÛE¶s)RÛ¡([ŸtgË] Þ%šÄœ4Ïv5Žìým‚¼fÛØÂbu‡jº§b»-¼ƒcí¨ÇÅ8lS‹Ô¯ý–ŒëDÅš·²gaç_$Å[ï`÷žn$R }e+aŽÛ”VïìêÇäi–Ï^¤dñj§¨ùݹü0€J#<>N @°lru2.™Ü\"ÅUßÜQXWÌ„D”(ÊØ€äMÐ5r?Ĩ:SIhú6$Òæ}ÜÎãâ?Òð4¥QP+²h»s“[ðdG¦qBÍ*¬@ð,m˜ÕpZ#ªB¥Ù ¹8]ˆ YrqD.|Å2ÿ:Èç…(ÍJðjºÆnozqÍê òNžMQŒî.–Í2;€‚FžÊäx€‰ë*ke+ù4³É³À<¬¬®VhÖXF áq|ï;³%"uƒR)ÒNV¿ƒyƒ´¶›Èƒ¹ZéÃrv_Ó,ŽŽ•žj±ÆN[,Ò{“îŠ0§ 3Aézq·ÂÞ-= ÿÉÄ[C“‰¥¼ë»nù]ÞÔf¡ÀFnYˆŽÕ3%Ä|ð[ƒ§5‹_·$U§²…æ#7¨ÈŠÞoý LmŠ*ûú̹ܻ^a tݦ ÕÁ‡þµxnòƒhe„ž×=ábÍ*À •:Ò·å4ÔOÚAÎwšú )ʺY WþÔ­ù^8uõƒ_75Y«,7éʯ¾L$îô;o¢ÚTäú*³ ÝXáç3®„ŸtGy;=CÆòÂ+l¯Ì¡Go§Š4k4ËI÷ÛñTáAÿWÖZN<ÄnD*»J³"ˆ«˜6õ"%SѵúÔ·ûµ˜›`ã‰cåD™î6Ï*ˆ{­825íAvìÖ 6Ÿ¸Bƒ©`¶á‹;“Ózå¬û­œUÔå>˜/”伸;em¶óÒ.wpQŒ»È­UÃHaÙ`(߇$ ¨Û¿Ô Þvš½Ëߺhx¶Æ·óUÖ°;ƒ››òÎZ"×N¶‘q/ŸrØèý/¯ddalpha/data/groessen_MvsF.txt.gz0000644000176200001440000000261313162771466016537 0ustar liggesusers‹]W[Že5 üïUôòò#ËA0h@HÀËçT•“ÓÌO·ä›8v¹\öùùûo¿ÿòùÇŸÿ|ÿö×ç¯?ñßßßþýèáó³û´çOÏÏþ¬ÊºÇøvX‡óÄcïŽ?1NØÆ‰kw|>­=>¢7úhÏ ›í9‘M>¦N÷x<ãŠw8Åç·ýƒa=AZ"Žœ4ðÅf÷•lë1Xè sA^ŒÃ §Öo¯ %Û­R~œîüÉ9~ôxŽåâ³±ñì"z%g¡ÁW>ÙÆ¦Éß|%N7œh†Ý‘¡Ÿ›Wä†am>ËôØâ³îôl{u$‡èâqä˜~âX¯äv!æ®\&bš Ϫ¶ŽWm¦ÓÑUú8è7}³çúâ³m¨ íðØ>«(³P‡ EðYŸ0 h9DÄÍï+„ÓÂä¤C^æ•®ÀÕ5Üêwào(+Ð^¥Ü*|$|àE[©BEq6ºð׳·KKMNg—t@.!òr#¦¦R²PÊ-&³3Ø{ëÒ§j‹8ø£bì(ò*ó"Æ8¶™ê‚‘o`ÈÀ:ŠŒƒ`Ù"×+0Š2½‚n–OÙæ:U„ ¬ÞQ>bë BðÑUý^Í&´ªþb)‡âg«·CþXÒ Ãâø¡ÆRf•a?, DÁÀ˜9+©YAË8„™‚0»±P«ËœØ¥®ä-æoïƒÚd=^bÞ¤$î8> V‘¨Ï u #< ¶æ»°DÚÊiá!évÖûPÑžgUóê9wa:ùSqXÚ¹2 õVL.=¥¶Š¬ýiò#Äõ ¯A6DÍŽ:}ýÿ†œ/Ƕêr%G´T»!!FTJ'ù¬ùy׳¦ÊA×ÕsÒuj‰¹ºÅfµÊ‡™ŸÊ%Ë4Voô‡ßlƒhœcšºÒ‡²Í“íÔ8¡Í/q¸?ЧÔ1vQxhœ€A”ñ-Ò­õexÞÀ˜~ÖÉ çÞ®B1Xþ’Ní¡Êu;NeØÓJ}SÃS“˜æ@8m Ï[‘Š€ã¦F| PוyFÒ–SÊ'ŸÖ ʧ‘§«Ý+2%9Rí³0[–²_¡³BÝS”2Ž5²F=GÂpÎÉH§Ô!Ù]Kx:¸ïwh±ÿm* ¦Ž9ZÓEmÊ ­&²^•’£X¦_jr?#º…†ø:JS``Eå¥Þïgý4^'°¦”.´‰AÔ6ЮU!ø‘éÀz[=:[½¿MˆHî ¹prYu%TŠ-&q¬…„,Tè Œ-®’**ðuFiˆÏ¬·?Ä&Uße êð‡•…WFm[äw-yjÓ|5Y4êoõ90Ù¾BCBU9%×ì¶ØÂ$Y¤ÑZZj΋iµmQµç…îÇ ¹à>Æ9'Žiªg1ïCTh·ú‹"¢Í@ûǬ¥æqX³V§<ª©Iåou•ôºö±ïXÓj:ÑûÚ×1ª ÅÙãóÚ>+9)ÌyûCv-›rª•E,©P ÂÃ!Yßì—ÌÚaÎlð2;{1N¾~^ËU´ýJ•:jðízÍ{v:® ¡5°>nú݃ò¯i‚¼ôÝ ­¥ãÕ…˜>Fú»° ÷!q$-W…îZà¹8Ûf¸jSÏŠ#jjµ¼’Úg•ÔÕ„yæËȽfžô¯>5D~IŸ¡3l¬+ÁÆ=¹ÔЪŽ#Ò1Šhš/ì¨/†- 2-нXÈÏ­ZX.$~Öžy4H›ãîg ¦pœ} P³!¹õyg¶ðmb2‰»~0è‹ïËTïõÕůµ»)ñ«ÆÆ­-å? áë;úƒ^ddalpha/data/chemdiab_1vs3.txt.gz0000644000176200001440000000127613162771466016373 0ustar liggesusers‹E”Ûq,1Dÿ7 "Ø ôø¾Ilþ‘܃Ќ«\e›AMwóø©üÌåÇO—_È¿Oûî-{IŸK4TÔLô£ßf²ˆúkK¬÷Õ-ÚštË0É»Âänx9L,f!„laˆv°GEU6ïÕÅ´Ù*u H݆_t뤯 ¢€S¯jµ!{H!æä),RDœ?#–̬ö¨ x›zÖ æ•M†v‰NyTÚ¡`fCyl¼²yÃdð/èmÂÖ®hU“¼wTÏñHQ”‡MPÑoE  Pp³qŸ` /½ ¶th>Y~¢Ä5TóÒëP|h›ærÓ^óq)ºAðẋšbõ­c½BàÒaï­ãqªlغÙ0Îr€#Í쪆ý9#pTï[oÒÀqÞX·î!ÿK¡wZ`@4ºŠSÂδ´/ÍÉ(ŠÇQpð’Ì€fÇ{Nä´=L¬2]N’ÍCØêó´ÈýÊ©e¤ôämÛë”´ÜçZk¶;Tâ4÷¸vÂy÷h{ʩϲåý×=³18lž-¶K{?'lšçñµ;OÌŽu†ì±›F¦ŒïÀG´ýŸ‘«;YÛìyºzŸžÃâwˆùsC=oB¼nå¹´<8qnyñ0 ËýËì¬ åÓ8Ò?ÿb¥Öl'ddalpha/data/ecoli_imvspp.txt.gz0000644000176200001440000000170213162771466016446 0ustar liggesusers‹eWK¶ë0›¿Ud÷Ô6þdü6Ñý¯äÆ·w’“˜‚AØ}—ë]¯w»Þv½ûõÿßëç5®×Ï(ÏÃîçq×çÑæU“ÙóÞ÷‚µý˜ûÓ`¹°]×þÑ¢©Â´¶i\ûmÝ05‹m:Vû~p+8…anÃtKæŸý¹˜_Ýû·IÌý9¹²n{§X°7zÝ‘:VaîÕUÕd‘_Ùñ•å`<|G ˆ¹kj;ß¾ßîBx·i‹¢˜½°`ø™BxF€mº”ÀáN Âì8­·žÁ­#|ð#gõwqQHøÛutÄkŸÉ ¡Â‚Vâ¼'<ôÒŽ­îPÙI Ö%¢NêájÀ:oE~%œæå /f>8*ûe ÀíÛÄÕÐbL‚TLð$}íãˆ×Pí,IVõ ¡4Å+_BA3‘¼é¬ŸÐ™´4=k21’‰ÀY4’ë^ Lè([ iVz´QJ+»È˹¥-Tâ¬+µ¹*š@¨ì›˜ÕàzMV›‚žé!ÊPkœpgQ[ÇjçŸZ…î[â:³`Š{HwF,¡ €4|¾„„zΧò©”C¥ÄJgPô'»žAp¢ŒnRˆ¼$ʇ€èû+IÔ‘«ÉÔPþ§WƒŽ¢~^‘ÄX¹gë6ÝÆ¶Z’Wùâ¢4Bq¢”*ú¦—ª¼cC˜j;Dϯ¨¸€EµMÙÓÓIkjÝêÓ+|0Ü€X;t¾‰r µšBF}˜38o\)SÔ=&Ìþû˜ƒ9AU5o@6Ôß§éZL.L àåpÒ9Ðûà ¼$9Ó£Ó&°è°©îM·––¥)‰"êaê]4ÃCH#F¢¡;ö{½ëèiºøFSÚ1At'€ú[FÊ®ö@÷ykq6ò¼ðÅú@ðX„ŒÈ6Ý`0ŠêÊšf0ž½û¼5þ[A\t±Øˆ9¸åCv ;Lq5ƒ9oÑH«À[±HðjÖ:²¸ýÔDÇ5ç]åÍ2U™WÔåÓC¯¡ xVä?j1À•޳juªûâî Ÿ’DudÞœjEáäÂj©§†Jøô¯Ü IjßoßÂnˆW;(²@‘Æ¡ü*¼åؽVä Ú}HÜBÇM§‰Ñ«æô¬ž„[Q'#² g‰éŒy0!ìúÑ/º¶ý•p­š®O]Zö~™:Q.;ú™ÒY!—Фœ8°$ÞѤó¿EÚ)§¯t;Þ/IJÎ/^ ddalpha/data/indian_liver_patient_FvsM.txt.gz0000644000176200001440000001562613162771466021111 0ustar liggesusers‹•\¹’e;nôõ÷ *¸/¶"äß®Œñ¤ÿw…L$ι5¡žˆ×1SÝ,. –D<òçOùü©Ÿ?íóùüéòg|þÌÏŸõù³?ÿù£ÒÏ”?ù“×üä!ÿó?ëSªüíþü×?ÿ÷¿ÿçŸÿ1Ê'ãÇþÓ?cïÏhòsúLù±þÌÑ>ÿ°S~µÉ„m§ÏÿÖgÚtkë ¾>Y~”9–ÌÛ>%Ùšò7:bùiä_wÿ”ùé›Óßã˜&›•ßÂþK’7¦š?C—yd4G•Ás$Ùeî',ÜP—µìteÛY!qG9ËŽ0 kœqy>ÆlOVl(÷’eLÆ ;NÌß\G øg)"É*£׫ümx;{ª2ÓÈXmr-ü½ÎÓx H®@Ü"ÜôY¸"ìûÜq>ûέcßM&“½Øž¦ ´Ÿ­çU?;ó„"ÎÂ;¶QuÙåȱ›L(ZÐdº¯ë©Uþ?f“ëeÌ2MåUã‚ä&Ó–®ä·ü©"Ù£J5s;Åß¡œUd–>rµe™Žq;Ý. ƒ6÷Û¯¼Š’™"ö£óœþÓqRѰ!ÿá–¸Þ>'ȘHv”¡…²@ûñÃû]Ö««»}zù`ç´¦­VUÝd/bNköÏ„^˜¢äkÌ…äÀØÚX¢-‹^].É4G®Fä#?Šæè~h3¶§Õ®ê,¹y™4sã%š(}S!ˆYÈÉr†~aH¿VÝK°W™BÄ„Ãl»†vì'óŽéµ6”3é˜rT°Ð~åD°110q$ò75jÁ_ŽJTìjÅúœÖ>ŽòÇA\_ZEª"ËWKeÅö_)CÄkP*Ã|ë1¹Ê%¿ÖàÁv3ct=Üߌ©j0ê¼ä_Œr}NÈkë¶\b4‹3BžÏˆL!ê*KT,t¼Ï T$ÒùïUV«f®Ç þbÄ5zh°(ëžfVùÄ>)âdD ×  « Œ0JiEk\‹ÞHG.Á1rý(>-Ü'&•BÏ>O.¹Ë[׎q÷ýž¸7U‘F¥#GÌU å:*¸¾B€ÈfÀ`¦^ wjŸýÞÉbD)Û Zø÷¸’ˆK㸇ƒìÑD3Ù0ƒWÅǺ(×Ô¥˜Ý~‹eß1"vÄÞl1¥Gõ¬ù¨qÅÌ`3ŽYŸøg¬`ɲà†[†‡¦ç3ŸÑi±ÈÌ‹êëè¡;§!¿"Ö4!·yàÓÕhwò[îJ®.‹ éÀ‡€Ë6· cì¸wÕÙàAZ œnÃî:î;9fO^`'‚Yr×¼óþåG ,¨Ã uPä~Ó¬*cC]‰Û¦y5UÏd¹¿möèÎÖ@·M¤ÙÇd¿ Ùoå»›ÏÍWÈRàMEÇ+1Rö„æŒRg¾ˆ¯›HI±TõÙî@›U\EK²än†㢠8™›¿“=a:м$@z„Àù˜G¸1Þg¸ä¤»üì;nö£Ò—œ¦vƒtÝ®Üâæ—(ªÅ+: à¼ÝU„ó®—¯m”Ao™N¶…µxCª}5»Àº®dË<7‰y ‘|=–1Gf®® 4¾ìö¤xÀú ¢é’Mª§Á;•ζÿ(à:ÞŽˆ¾›bà‡Â¯ïBg#ðOb/»¼Ù_ŽyÄ» Ì2 ,ösÌæ®ÛÈ€mtƒGn½@¿1ÅD0«qSM˜’$µº†rn(ó/_dS•[;Bujàb$`Ù…ècè «mÈ…C-ȼÛr´ y†©…!ýYÀolƒ¥µ<¨ò²»¶õ2î(¹ c–»•”ÙšžSpae†0¡§âáQj'[ù:VŸe>, K{@íjÒTä¾ ;ä1K…’ä–o3©üÀ Ÿ3¬jGÏ\G[æöºÀ^YWt ´í¯³±Ê‰‹ —hé;WxqàÙ¸Z=¯uÝív'30QßÑÍì‚×kŽŒúú$’Ÿáö6@5‚¸ñõÙÈÄ¡f\¶:›Qav%Z(B9•ÍxúÐ-´˜+Wq4Ê/ïv×󌱪€ð?Ö§rW _ƒtqãév1‹¿–$¼…ت!iÞßžqj„R‹úïü Ø©ëÞÐØeªÆL¹ÖU#¡sôOËeW;Ædùƒ4¤)É« éœo ;E5×¾^0×9ž5/ë7þc8…ˆðBÙ⺪ÆðóáE*1NøãÃcJ8ÂmÀy9iÏqØa"{–\%†å‹iœA JÚÔö¢àûá'™ C‡ca³ DÐ ⯌Á ÷mŽ´Çª¢åœ`(‹/fââÇKe¹´R$çHÉoÁ£g× ¦³ ë“Q½í£„¸¥®åE[u1ü¿cjÀ˜­[Eá%ZxÏ^hi…©u610È%k?$b3¿æè§ØïHÝ*E«á’“Åì¥ËÇóÉU´t’„88åÜS2ž(÷3Ô EŽ” Z¿éÉÒ3ŠÜa×V=ûi×b[(Å¢£Ù4s4ã/6ˆ¥xÊbh,_¼¥L϶ŒwÒ|ê’üYçB’¸”z°\#è`J ÿ‘ +Öõ<çr;HºëP‚´ÄLÛ´ ®¬4O ÐnW§¼‚0CÁD¡Š‡¤yu ¡¬é{ÓâÅ);†Q¨[Mdh¦'€ß*(UiÖTPÃ…¢f ¶ å†~«<,7$­Õgó|óh‰FîNúLàkk–±&*Z{!xì’û®VÆñOyj¡®ÄÝÚØqT¨lüì^ ù€ƒú©IÜî~f˰rëY-[x–Èmû·… ý™ku–¦—ó²GŒÅðB†‡®pÝGfƒA&;½öE@!€:ÍH‹ùÃ4–b…㻯ðÅpöÛàáÃÖNBˆ››Pi™Æõs®þUÙ.P-v/·¶xµFí¦mJ™÷P¦Œ0_H°…{<#:-‚žìeóNɘj…NŒr}DÍÃY\Œƒ ‡Š—)šDlÔWM©]¹#°tAÐßuæ­¤±Ž ìKÊ ûZß]+͉ŽL-6ˆ÷à)«%5"åM¤ô'u u¢¢í"ÑMêî:Õé9 ÆPºUª/ ëÇ FJ ?e]ê…¤’Ù·gb…fõµ‹·qÚÚ’¹Õ9–rדh4QQ½<¿¡ÀÛCYªöˆîƒï<&G$Ák+^Ôòæí¸]7ÄfÔ·‹K|¾ëÚàºwÜ^Ò_ô¶Ïú¬Úc@Õý¦™(*öœèÙ/áx$‡2UÎg…~Ø` ȶ3k Ëmæ‹‚îÁGÍÀô¶€Q¼£….š È´nÄ´æ?%Z¬±åúÝò[/ “E›÷TÄLóŒÝ2î/ˆÕ¼9JbOÑÊTû*ëw7’qhp—„ÁÙ£!‡  G—‰e¶i Û³}$œ /s¿Óz«0Ÿ«Çøh`tC`WSzªÿQI0DK³óéDL€û q9(³xå$8tw’‹ÑWKvÕ¢z!Ø\±Ôb»êWùÙ¬MWËÁÔW¨d™(ÛrL$'+ËjÝèêpIP*Ë∪‡fËù‰òrÌ §‰+ø‹q{³R˜Õi¾#®Vž—8•=™Ï\ ŽN€&À ìdªÅícJ°,5,åüwµØ]Ç[,±òæaJÎÖ”àÝøWkŽf¡Ñµ¡?ÿýuƸ›(ZãëÄjÞ¬iuÐC7(íí¥mkÏÔÏx ÿ@Êl65…—ýk«‡H¯ D­½ç ÄDÎý<¤ØÏà~Ò-õ$œBêçQÆ%fê5ž­µíWÒÚn:mT´ÿ¹”n3$èNèó2`,¬ÞMd«©Ög"U‚27öUOàkTÓÓ¹ &È…ùè#ï’%û7ërµßg>6[àEˆÕHâ[Š#×> ,›)¦ÍÞ˜ gÙ™]¿:ÐBò‚]—¥ @ã•Zé£+@K¡?ÍL±= Žß÷‚ã-Þ¤y)«ZÊztª…꘧óYaGÿ6Ÿ ö6"ì1ùŠ.ÄöUÙ&8z’GÍ)¹v×ËW+š6vÌæ8„[²Žº2ÙàÒË·‰¡Eß›”ô›ÖDXX“ÁQ·û ½ cûRºæÏÓªHO²9D—ª´Ô¶ý·G_»­*RÂÂi´T|äM£X§' aw#ŒëÖ/þ:Aóà<´ì£­ç/\ÂÐþ–úq äI€×î4 È,0ß*Ìöf±I“Žz:=´”«x¼0ÃÕˆ¨ÐFÉ1ÃOt×=á>ûb34µkýxO¥xžšZ…)ÜÇÒÜÚèk!ÕѬëá‚¥f8N_èÁOïlè±,UŽšB~r©¥‡]¸Q=4´r!GуNñÇ3á’b»‡¾vkÞ¡šUfh÷HJŒõS‘ŒcÜ1-èUí‘1½ÞÎ_¼÷š”%ÐìŠ*ö·ù(/ ¡‰e²±¾H GÃÀ’ãt¢¿³–¦öœ¾ŽÕ>· ¡!ø«¼2}5^Ú‚GþÚräÞsÓÔ|ô·è+¥©3bc{ˆ0< Û¥€Ê#‘t»ØÄ ÅzÏ´@]ƒÏ³&Ù¡édNKs†‡~Ç,e³hé¢`( ðJÒhó~sU’ʦ¸ã 6ã»-ÃñÅ+Â;ᘙUc÷ê³gÐoËïH‰¡\æC/' xL"‘S£•l{óâ}ÂðªªéË=ïbp âÍà1ùr©)Qû ¨£›‹˜\ ¾3[3\,»È––µÌÅÇ Äïs5âÌÒ,_‹ íÄ£A¼~¬ðû¨5ÌÛn±Ð14xZÜà0gÜ<éÁÚb¡>r÷îÍ´åOv'‚Tº²*T6Oyó®A ú:ëHÜÙ´¤AÛ½oo¶8*lä·•µl)"r|f­§]Žšï{ów¢›à¸{›Vìžëm'+Jsçþ¦Ý»¶ª÷äkG¼ hV2ºu…~‰EtKnmåy=CÁNªŽŒµ½}-xk¼á¶b•‡ÔjÚ *†Î…6Ò­è× Émô'ªú7뮤jswÁÄz”`š×‡K9½?^K™„E³ }…È©f |ýyLü¤#y‡XSÖ­7õÈ%‚ý(Ôås$À£Í°z_ØTÇÓ5)»];÷¢<²’Û¥ÿœ§oè9ò ëÅ”à^+êiðQjkpwEéŠê-PëöŠb´)ŽÝ6Å„¿_#‰ ç^ÞÙ 3OçFGÄõ4`ÕgâŸyL¾Ækã«í-°ð‹0£xO%{[)ôÎ$¥:"jοնc²×Ô[õ§Uó1Ê «ž–Ö×MŒnÄ¡¶L¡•¢5€3–¤@¼<{VzX .¡tÕÚ×ã â!^Ò,5Gzý‹÷UçñÌêKèH\^|ºxÞí(âky>ºôõÞ_;‹å\_\ÉýŠ«*_‹{È=ä‰Áÿ¡¶‡Z¬©^ù+žÀem•éùÑ©þî(‚©m8ÒƒË  Ç‡¼ç 9æ°ÓJßBF¥Y;Ú£dQÊ +Þ½B:ª?àŒ?ñ‰ºõ˜õÇöí’ê´7•šÒ?œlq¨¹‰Œz~ùÊÂ8Ap§Óq÷"UFDþÔ‰ZÂ[Os*Bc²1f˜Ïd>r{¯†u’ˆ#¼‰øÕŸH˜¤á¾:½[9hšoôKþIvk,…dP®ýýô£.Ó¤xEØœó¿Ž<­¨Ü³‰%ËbõÉsõ'`tU—à90*°ŸíµH1í3Ps‡Akœâ$VkñÙ¢A±­ª&Þýôó¬ëKðµÑo½}jsCc2…žÕåP™9^¬\Æ8¿ë ñ´M$ÑÑ£ýÃÚFæ-‘x¢¼Ø*¨‚bË{TˆKz‡Ö|}âªM$MZ?Düez.k¤xáå G°i¼úµ>èmñ,»wŽ´e×,h×ï1ØÆ–sTÕóí/ã.fu•’›ŽÍ_2-4×ÕäÍÀÖ¥]‚c DÈìiü×ÈÔº¢²¾3úÅ–fY|~gf¿ Û9­Õ'~¿ÂªTÊR=ß]{'yîþ~R=w;Rñ)÷ÜȯÏÃ!Ž“€ËòêPÎX »Ý1Õ^ìáÀ‰ÝPó™Ý«2J9I×p‘˜Ìßsá=>+ÚÙ¦kGšÚôÃ,-sàÜO)œq¤ÿØÌ*^•D{aòho„º«ð+•>2_Lާ7ì±NSÓ©j öIŒÎT+³·ØûˆÂM5¾xAØc>ŒÈîÓñ¯º {$Òö!Äǽ¢÷Y´ìûƒK7 iÓ¿ëyóÙ ³6(jÊwí¯æ‹öv îõ,Œ7mæ Bd'z|M3‚(¡²C—š±¿-tZ=éÙáÚüeCc‘n²”÷êFp N3#4VãO~ôƒõ¸Òlý €wc“…ÑWè±E°YiŒNQÎùÇ?tq?Ëõèþj·bFWÚ/'K~©+ÌðÏñ|7L¢ïT“Z½Û@Õ—…¢¨¼¼ÛäqÛf÷¥GújnTƒ[±¦”.猷ú¦ç«C¥õKðjƒN]–g„~ îíØ_èþ„×{—RNUu¾Ü¬cîYæÆÎ´/‹A¶kUii;E±¸_gdç µiôF¨ßòjV°ÜJbl÷âAoÎs½ÊwÒóÙ…‡¾ÓŸ¡ÝmC±s oÎb°8úÙÂÚ{1ÖµÄ×*ÙC?Úlj‚f·TûÑÝ]c> ˜‰â>‘ƒÄÅS GWFôÐ*|Ö"¢Ý¿XÅ}¾ÌüGú¬|y<¿ëïÍ_ô ýrCÕ6èÇKˆ~¿f†I?ƒóÕÌq¿¾^kÅZ¹u~ò„GƒÍ,Vિ*XÂC>_ÖhȶK5q-^e>‘ahiúbØmê—Jü°ú>iíê!©¾,Á2ÝLXáèúñ•Wü)û4T @ Ÿqy7™‡¯Óía±öõ©¨"U‚ôkÁìt5Ýñø_ƒKäjlx´ ÇÏ@ ª›üуW¼üdÖ‡ËeÞ—6gŒ¹ !cñõõ›êé`Ãù~ì?z‚-ª½—G@²J6ûWáPæO7+sAk,JQà3kHG±2P0[ „šÓ³¾š­Ë˜äç0h:«Íh Ä#ˆ¡˜ý¹pøÈ úøì^±WUC j ¡¿ß}zt<îÒèÓ©Êdµù ”î7!<þó3AÕô0Ô*ü…ÂZ>¯ÕÉû¥ø€àG›áÁ$oq@DH—äÖ°˜-Úh¨=˜Îã´‘©”}í_¾ñ°Ã7Ë@òaä6ÑK¨Æ?#ÚÅqª9þ苎¡ß*XþŲý™Ä âÊ3ÛÞv1©ÆPk»ÓõÁj)³9{fFe%×ñtH…¾ž…ú÷3ÖËB/õ%â&ÍEÑ]’+†”î+1ן­%áø9ÂØußtž°ùk¥Û¦–†kt&å ,«³ he)ù¾U …óÿ®´ÒB†Uddalpha/data/tae.txt.gz0000644000176200001440000000100213162771467014520 0ustar liggesusers‹íTÉqÄ@ü+ BX˜So'¡ü#1Р™q®r•?+±\ Ýèaz„žBO¥§Ñ×%… 1ñm‹¬¡O¨Â×ôU¨xü5ˆY­ÖV Ú·n²P¯(û$QQ<°Í½[¤i¤X‡Ès•ðM3ÎnÕyXÕ’—å]§ÕÎöêënqŒþ‰Hi«Š¾ÀÞ-Ô4ˆZˆQ„t r±‰Ø‚Ê8º#ob‘Õ5r¢¦W³î¼pÊtKkø®ÖÌõò¶&NË'òŸ$lÀÕÉ:•î–6÷ 5º-`¼¨ýM}È¿>þœ>¤±²ôÁV“m ¼Ë"%#ùà/D‘<´¥¥W§–v‹S%äS±öP«>œù2T¨ÛÎþn¶#´0 ÅÄÕÅàÅù¦¼‘ç’ºà˜˜kÊÉIüì2, yïr e¾Œ»D9ò-.¦¦=M)™Ïà(mÁ•;1ƒh?àõ_a+]ì‹rÙ7 W†üÁQ¸¦²°ªÑ|uF¤}FT(Ž¢™Åööü>¤=Š´}IT÷_%=RÕLJ¯9ÊÑ—ÏÇÓ¾‘©žº>ïû€ÑÑžãi[°åVÉV˨0/”öØPN™¥íD[¬ÿuNÛ&IÑõØ&8Ãddalpha/data/tips_DvsN.txt.gz0000644000176200001440000000307713162771467015676 0ustar liggesusers‹mXIŽ7 ÝçuA”H Ëé…b/’Üÿ á5PÕÙ4Ðü”8=>RõóûÏß¾|ýúüüòçóããïçÇ·ï|üõüþë?ÏóãË¿ú÷_¨„Þ ‘zâSžôÐ/Cf–¢"³ ÓPÊA¢æPš 3M!Ž'ÒUXÖ ¡„ÔuiBØB­O 1úÓ%4\IÉ)’„zqš¤·A3e/Œ!UÕ¬Þ£¬ÆË#0DþNÖƒT¼Îzçv‰ÍPÂä’¤ùXïé¶ž32W§&’¤9NÈÇvi {µtÍC¤S†¦˜f… ±Ma2M½3…*㸠5¢‘OMÈæŽ0+œµã#¢ZB’ýj¨‘×Ú;MõÆÕhj¦Pú[¨ ©QýÌ—f·ˆfæM؃¨ÛÅ+6D¼d—½¼O#I0Î+t6ß Õ{Äv¼DŸÎ´:ßW5F…ë¼3›KÃз 3Á†|:®ðÔÄósÕ "b ÃrGQÈI9Ö›–ïˆÍt7Ì(¸Üœp¼Ü8N ‰×ÐűÁ÷×4ÜN§ÙWk!%º6È ÐhùÖêRûé ÿóBWY8d$W·6cšáÍ+-0áN"¤\qW¦&„ÜP¡jvH²~Q|ÓÔb´ :w¢ÏCo^8¿ MÌÉȇ¯ºŠƒ¾®.@«–¤úÆh3lãJšnfx´ 7Û:7»÷(M7=àÕ£X}¿äI¨èâihV#µÅˆûNFÒÒª¥¬ª Ÿä6ÔÁÑ')Uœä…¤¬IŠ@g-^z½ õ¸±y¡bOÙ§°` e€ÙiFK]3žøÒVìã‚:jª²;žK :ÃOÅḂæñ†,ñ-LcˆIhâ…èS˜Úo½žˆxµ«AÞ4M(ƒÈW5L¢JƧäOWði2ò3!GĆxhò¬Æö}ß9RAf|ßIW¿mMe/ºÝÔÞX$íü”ÛÝòð{kN$&Œ"-fóHŒ{¼]“,Ãúh-§ÉX!¢ïvYOw»òj×xÐÉrA^ÿÏ÷$«#½§‹h’R=PØëOùX„:=ªÛÎfÙ ãnÜÍŽ©#¸ØQâØ6ÑM &¬%Šx/L#i és8¦khÍãÙVÒüŒ¥hsüiùÔ %SÍä­wxË,²ºu¡ƒ´£·£Â´ò1…м„ŠMZdzÑ q»™Æ–—Ì;ÑÒŸ27¢¼­7w™°mžsŠcŸ{Ÿf°û[8fmzÑO+ì-m“»ÍosRƼ®+Jd“5 ~&»B¡WÌo9Ö‹Ygø™ãPþ ¤†ž¢Ñ]'Å ,$®ølv,T´¦¨É*Rô¿ïUAwlZÖÐ¥¨kÈó± ^s®÷À­[s B±aOÕ/?Å:p4õL{Ù‹ì˜Ö×K§€RÞ†FÎÜK‡çÊ[>…Y@>éÕê~«p± ’<¥É‡.!´µwɹ‘qÊíRÄþAq]6b—P"\ÂØ\›N6’mð‰<Ÿî[_èXo²^ tboéÌ—½vv¤ŽÈk껢ŸÖØ7noaÇnÉw’´3 Vs¹¯œœ6ÆS:‹ßÚö’Æk6bô4iïÖû±ÁVà¹iHóW–+rÞK|?UçU`¿Ž­ÄÛ5=gGÓ]°+´k—äùRò¶ÎÊ/î´9F‚Û#ÆN×ëK.ÐLÍñ¹Eö4¾5³-)¨² „¼>M$u`PÖ¥)¬`Ýkì¥ú0Ë"óõõU¥ºå!üpS?0ddalpha/data/segmentation.txt.gz0000644000176200001440000003601313162771467016456 0ustar liggesusers‹µ]Yr$;rü~}Šº€hØ—o]¢ï¹ÇDÉ™‘©Ä'£È®$ˆÅÃcÁßüú[^ëëo{ýí¯þù;þù;ÿù»þù»ÿù›Ó?ÿý§íW+¯„ÿÊ×ÈøJó•¾vY»ÏÝ^ù«ò«½úúZøÚøe-eWü³ÿ*_¹ôY{å?y­×¬ò ü•:¿ê}^&¾Öxµô•WÏ«á·eÏ´ûæ“Ro{ÔÅ'ÕýÚ]žTÏ’ÊW/mìòšçám|ñ9½ðA£õ™Ûë¿ò¹Rxÿ5žò•íK––íx±‘VøC_\Ùó5ì×|ÇÜêhx!. O¬…+û•ó´—,ò…;Jµ4x~Uü²ï2øœ„em¼ŸƒíËõ•·mz“/.(¯Q[¯ÎÏZ¿{…m.e ÝöZÇÜv¬h,yRúZ<)¬…ߎ²d¥únç7°Û£pcñr#•Q‡,jìÞ¸rϯ¥«Z_U»}õ9«>H^ËÃÛÍTñ²¨\fÁðImô–E°í¹ïçÖ›L¾i+i6‘o~•ôÕåEù>r¯Â³ì/¼eë‰SÕ=ÛÜžn¨²e"¦X\ ;–vÉ7°øw:D,m;Â<äKÎâ°WÝ–¿Vn+Ë)Vgžö ÑW´3ž”ýIü*²ß»ŽÚ0T¢l×TÕ™µl•øÝj*ÜyÊN‡ØdI;—ÜrÙ™ ‹MŸ,3•ªJØ6–*GX^[ÅzÂ/ü¸BqgåwþrPÇ¥‚!êÜFÝ+©¨·²[â£ðŽ=Åmš¢Î#ÕÂ}¶Gᇣëúºè34¯g,,x®&âúk¸¸wYŽô«W|hñ;ÜùêûKÖDŽݽt]U)kˆdñͧ\¹dÊ9AÄÊÉôbÏÎæ×^×¶g V‚òP 3úžU,¤ߥҲ芚­WíQ&ö>-YZÅ–-Ù0¼ä´Cgà O&Ÿýj¯Ñ¾x„Í׫چ‰O èÄ‚Êãï·U%¿Ñâ¥ð‚ýXVjøySü›´uïþõ¦å1«Óý37èìµ½’ß¡0Ær 8EÛ´ªˆ+Þ·¶wõV RbsgSe’/ý¦6C¬ÏÀï[•í˳CµDÁ¡üv Ç¶ÒT¤6SÍêº%Áõ»o‘Ùû2=X"æxEì[ûöL5B|d†j5Š,qóU£GšðŒ[Ÿ9 bÎÄ@<5Â6®©-hp)[¬MçY`á}‹Â,.~«¢œ0> ¿núj‚%…“Îë± ÜÂ(ì´š.Ž.¡6yt)·lò%Öv¨¤}š<‚|¹@Ö¼ÊÌjCà1»ÚÿRÓq½õ`‰P‘'Ñì`okÇ1-;(˜¼ |Ét/.ŽND.ûëÚ;ÄÝ͇Ýß*!@Ø'±F|Zªö~ò*¢}Båͧ›¨A6°W¾R×T ŸºéëUJô&bç~……l] îÕFÙjÐ`ݦ=¨•Ÿ—V·wX]ì¸;ŠÃ1º3÷Y²A»”kó½ƒf^¸’x˜â ºiyŸçaÛÖ.Õ€\‚8蟽b€OxLÚ{„‡‚_c ¬ ‡«»Uµ¶ê8ŒÈ7÷„ Ê<†{®Ø­}°T"ìßX)ÙÄ]Ÿ%>©-žr1–k_q¼Ø+õM JÔY´õÔìCO»?2¹ßéÂÖ IÈT*Ù%xiÁ­yÒU{”¾ÈàwsMÓf~ KAmð0}·´yŠrrtÏnR]‘f;в[Y¥aiÜq±ø°·] \ Õ,WùèŽPA%ZŸ¦PÂÒÍ%Á}Ï­@ g¸×¹Ê. Á†Byü‘˜eÙø Ýá5a¨GrØÓ:…¡E 6íÜ4t_'t¾×O¿ƒ²÷Ä¿’Õ`=ßS5›VÞR/úïùj#ÞL#ÝAu1Õ)æÀZ©„x‡ÄíU¶Úd XêlNw *(™2QÞ”0ñQmä1ƒÑ€©9f¹7àì¢ði,15ذéØÎ!¶&Öâ> Ús ³‹]æÒ'Ë!B2÷zˆX•PO‹à¸ü>i`»ñú|Î2mŠX•ÑEݽ/_¦zØø‚—Üóe¸u‰è;Žš0ó ×öŽúÓÛQ¢fá 4ùÙ «Ql;UIá"áäI@;Y 0¤u´hä›:1îö7lâ(:â$·J;â–eöýµÜç¨úî—„‰À5„"Qz/‹_ÆÞS­qêiRðÜÆc5 #®î!h«W¥+ ß`²í*ÍöGÌâCÔ=\,?&M¼í±@UCH?:`m9Оˆ;0Ý~ƒ…jˆ7­í œK=P€Vb…à†°/ƒÃcõª>b^›£…‹ÐŽ¥·7dæ5@JÐv³6„¢¡Pu¹ó10Îïf«„)Áaÿ¯ÄCˆ·ÆX–ea²››í+ˆf Ÿrlò B†Öºùx½íS#qƒþ Ê¸®©â!6}©N”Õc¶Ít1Îe¬KþT¼þG%Ó×!¦¾¿^­ DøSÉÉŒb‚ 4 D[8qꊓ¿šmCfò©ãW§Šä×G¤¡Ä2ËE¡™#õjq‘à:ø–hù/šäK%±ƒdÜ–s+Ûv5“œÛº0xÌEeð„“Xž´fsIÊp™Öën3šì‘£HF”Qa¬>ö<É’è±n4ãŸp1y::<þ¸¨ §ê¥jÒ=‡½žc^çiDУýmêí`ôÅýˆ®h;ÒLð@#˜£y¥ €j­v ÿ(ßÏ+õÝꪞq«„Ȳígˆkd„8Ý'¬æ ŸÝM£J㉛1RM¸À–„hr09ºšr1ß}æ©X•,¢N‹9ÈÊgøjPà”¹x˜Jø©ÃáÂV«Ø£ÑÍ c)NŽ]pG¦‡­F4â|Èœ¨20Í›§mloþ)Ð 0N0ˆô¯¢Ê ² ¯r9ó^CÅ GŠn(u·õöOÑ+‘)­A½ÒÔM–WÓY'I;*`=rÚY3b+Ê9訮¥h‘䘰Ð]ÙÍ ä«œ+e+{ sS(ùÕy‰µ-„ÂñyðTËÉ鹚ù@;€Ên¬TI&@– [ã†\õwöÌÕV¨Ai¢ÝM*ã¬Éx÷é°ªÞûÃåá9*ߌsèÿ´tŒ*0m b9n’»†+yÖstk@ñ f `Õ@"e¡Ð5”üø1ïŠ~dˆöÕ¨9üÍ””õ²lÀÓèMqad‹f-Žv3[tTy´>jìÈý àH¯ú``”·òî^èœ"¶ šgár!êä«âp&.ÅX\M£9óÕÕh’aúäíå™;Oå¿Æá¿.êu“%ðÚ”¨õËkÄÌa¸ŠQiÒG¹AÕ×4“4˜äø\\¦¡51Q2#-@DÍ@¯Õ‡lHÊ}Ð =PðˆÜòð†búfóøê¦ðil+þ{ÛAØk¢eD|.&4\ýžO{: †öÐåÌHÈ€""°)¸œnÞ’Lõ¤«ðHè…á Û ³4V€ŽÞí¼6tYÕ8aK&Ìæ‚ ãÙ®†šTJÍ ¬I{‚Ï ·}é‚7öjIßÿ)M†ƒ,’ᘚãÿ×tS»;Xt„o;Òµ˜™,-¨CP…T¤ßþÎøwCN´)vS—™{ˆ7}±,€KM P;{Ý]s±“ IA9c¼¡èûÖ,u3òÜÊГ¹sÕÅœ<ª“ÓbüˆìqØk0QªÙË•"Ø•Å@HWÖC÷WÄNpßfx!´‚pÞÇûƒiƒ¹®ô+;&*áK4)ˆµÏ-ÀnµKÜ«ÅRUdØ gÄe—ðN‚§U†óKÈÚ,7jˆ&à‹1¢’' J<²Jß Ü“ú:ˆöÖ}šØÃ½ì¦ôñ¥TF¿ÁÆ\µu¥€Äªeø5戓+ý ezùZà{` 4ZÄ’º&¥¦>St·;3¹ IQ©Q@“oøW†Ész:Ö2QõªîV1äÖNåÂ\4K@¿†Ú)0]\ Z°Ø/*8Z",ÑÅ“|{F!¤€ &Läñî QœR¼3M—ÆŠ•2ÏF2o89érH·k´4qцSzèz‹™t’ *døY'þ#ÍÑœÜRâ=u×[¸!dânf°ýQShÍù†µû~R‹$UfºRÁ"7©’˜Ö1؆ "‰ÄÛt±Ê±òÊiâŠS-¬{•A„{ K…Tùª¢dR—·<Ùü,Éa©»Ðãű—q !´mRƒ´b’×ôðÝÙ=<bÁ$\7ùêÜü+ôˆîB뢆(š@.g‡c¥ ôɼçq±E ×¥ÀÙ˜îíÔ’¼Þ!ÆËXU€°›µ\kmk¥°É»ÉËm¯¡x=J1Ö=¯×J`[/͹´½\ºéÓÜÕ_Wi-…T Ô=›5/âÆI²¸ÄbÓQ[›ïÂéHœ5ǰSûš,j±²¨*·DsšS€!”A§¢BÓÒúAk‡®ê¥µø‡–IÌÇ}r/bfbÎåg9\?h«dž© BHcvçt²yê:¬ReŽaHäý»æÈøG›–¿Må+ EŸkŒ,F¬Qd4¯JœGbÉÔK+(·E?0*Y˜^•Yæ'gúÀ4µœy €RÝ[§nûz§fcws¨/ƒ­­.%&p%‹tó#-؃—%¶V ‰åv‹3µ¨dÉÛs­ÂN L%¢=)R‹*¬B~‰,(§k—2Ë|ºô³Ï½ÄžÀÌ•åÖÃ倻ëÍ#âlS,VÅk!„Ϊ¼ô]¦½FMª,ó•â›ìá=3ãÄ`š§ÛTTaÎN_ÂÍ-¼:ã »¤ äñnÙäv§K6gV_íܭŸÕ §Ã-ÓÙn˜$Ä)3 yÄØÓAìÍHâ—½Á PÆ–÷î÷B´h£GQÈZa”½¶újJÀ£u\ØïseËjÉb7)nn\½f PpùÆHMÅòš¸r¡ 6„'<޼N/×ñÒZ,\µ¾¾ßjÙ½Ø0n¬'‰iH|¬vUàU‡rîÈêèªã³Ö©”Ýäf®0¯Ciè’x5<¼ß˜Kü¼NYDýš§ˆ»£CÔÓÜšC\G¨æÁÃ+‰$ÚëÖ|–é»)½°X׳ˆšŠ*ôµÅåó˜$ø"œó 0·ëÀN0YŒ ÃïÚ´þfø»Ýæ«¥K۫㉭óÁ€ †úÑ Ké!c†¥¼Òûˆ‚-À¢ýÇ^ÞT@“ÄYávÒˆ¨Ÿˆáz:ªmÖ0À z-k7ÅÆ’5¾ VB·n¹§|FŠÓXó:!lWwû¸žN’‡©.o’z I7Y‰t¹êJ³ *Çùim¦`i/t`î·:™ÀR#y;º³|ꮺÕ]ñŸo1µ*Bb½²„²:òÑ,ë¶9)—t%ì¹Ó©¿IrüW¶ñvÙÕ…¬c×0;+ò}Kºî‘÷"]¸|½$Ý]mºÞ’í‰@‹Ë¼°ÄÎ?YR#²pnûZ&^O*&è,nÙ‡:å—Cq Á$öPдÙ=H'ö¿/µ rõ}8ƒËo d©tiy¬›äOµøqH›*É$ÿÀЧ©ô¾Ì2|Iœ}\(í×öR¬øhe¬ÃéÙÓ²%4U\ûQ§¨¨YÙ$hIL&‡Ä:Õ[-q+ÿaòø÷× ;0ùqðÓ-[Ý)b=%T7ÅÉŸäøÐâQÎMõиƒøU2´4胙Dfü²íT»íô”€Ê"M&êv„›ùrïÊŠ´åðeA‡õYÒã¡Ðm}YC„½Q.,Áݳ®až‚³h›ˆGù¢–ˆ¡\‘ájírü/n…Õ6&©÷lBf¼å‚_ƒ¶z oæ¼DT>nÛª»¸€$¹, aGfíf¤?Ad ýw ÷¼ò5—ô¤ .«oÒÉQÀ™G:dé%V‰¥¾«á²†óÒDâ>•ÚíÐ"€'EÒE¹žŸÅ>XÈò*Æu²lV¹ÆDǵ7#~øP"Jw/ýAæRœvÕº'Â6õP‰å*GºU—¿­¡ìö0Nß ±Tcü!ç1½€$ç¬ëŸ½D"¶aâdÐŒ.U/ 5¾Vg›©löºŒÓÁöBØ8JAó]K4+zN-ÖR’e½žâ®EP¡txâ)"’$9å0Üè’s6«à7ÙËýÍhÖBO픈äSòyˆDS¡D‰Ð×RålÂÒÝî^U],Sž¥~Rë jŒyŠýYD¼»IÔü$u ûì4U»‰Q’yGªX»)æªLÁÓó±i=¬c±0Ed¹‹ŸêÓ¡RºÅ Ðr{Ї֖YÚåšïD^â+¥ÀôœVA9 æi}¼L*‡LaLñ¸´$PD@ËÂ,ƒš§Ùæ,ðStñE×@EqÒOiLñ…X\J§W`ê(ƒczeVÏŒåPdõ‡)”ã+ÝÁ!ñ­ØÒíø·EüTÙ8eÒ´³D'”Ìqd«ŸöE&еÀ¤~3ã±²lÊBêM÷µÈ泫˜žP<(~Æ]«±ò2mI?tKX±ÿ÷-;«È³ùª¾´ƒYú¡å&óìa^´_¯e&xj–h.¡± Åt8eÅOfoY¿]Š'¬àbn_,9>¬$ “¸Ò·‹ìlÔ›u+¯l!ŸéÕq¦l>“jݼ½òèÑ©Ô*ŽöøøAçæÖ­.pÖÉÑ*k?ÏëÙ9E04x÷ìóáß§#hSú zøILãgir÷ÞG@yÀ Å÷¾Õd~« ÜîØòþ‚$úDÜïYæ n¦c\hFeÃÂqž´ƒ@:çêµ#E‹â˜ëë^Ä´¬G¡\$3Mj8ÖBj·†ñ¤¥µbñ(å¨w Häk Ù¢¹Ûƒ`uÄuUY¼M.A–Tw¦Ç¢$«“âuw©[¨å½š,ûÖ÷c¥­ÖÍb¥Ó¥ÕòôÃSJí}°ƒkg¶`¹FÒ®Cúàò– »ý2x¼Û{ÂcÃàõüÄ$kXÿ-ö¶\íl'å7e+=.V«+…nZÆ.½7OÝ¢÷[³ÅöœÚ´]Œ:&3XÓJOy;…™†ñLÞãZÔ“`oi…ÌùÝm†‚ÕC|Éq+(Ê ƒÕHôà?ÉL=…ÊÖO›}`—ž²„<|— º‡ÌzªzYeœ 8ÄÆ6Ô–ÔOJ5yBå5˜ÁØÀ¨Þ”Øfßq±n…d5"o?,´l8™^QñlË@Ø=›µ ’0ÎøæŸòr’ªÎ.@°‡í …=…2IIJ Á]$ÂNà¼2TrPZ.µ]S¿Íz8!Íš3%â†ÙÕÜ Ý)í¬Ÿt¼%{k…Þƒ\)cÌðÄ*¶ºé# ?'Î"©ö³"ýNxùÉfMY PÿT–Ÿîe$‹ÞÜÒ4V.Û,]L M& .:Ûh€ÊpwœìRWʳ†D¥M¢8ik¬·µzïÄþ{n-ŸÐÞjî«A8—Éf¼PˉkXFA†CÙÁ¶”áÏlf]ßÖÓù·#@á l«JðÈ ª¬••ˆ¤:( d/µ5§‡ò ítˆ°m@“<ÁÂÔìêÓaõ~+\,¸ÚyÚļ‰Ã"A+´Šfµ3ý†í´ ]Û¤ÞáhÎ^jäÕéí¢S>ÈÝ|_Ö6MaÞçžOφÔ"–EVÕø$¸}1'_}ï«'j¬Öˆ+´ïn“9-˜K8LIË^ßÈVø©A¼´;¼b‡Å¨Ü‚ø¤£,-ï ½³zR˜Qmf[Ä\kÄÓR÷pôwÈÈ(ž)®3Yß__ôó&ê¶íõüÉü»¾¤µŒ™ÿ õ“€Qv]kS &€«á:ºåÆX#fjõzª4—ÝQbë@jÖhЧVðŽ› &zvù]/Qk›^­v»%Hj¤ Øïo= !|¹’÷Ý„ŸZn¥8´Ä¬AyÄYK €ÐJ—,T±—77îªåep|V¨»O9N¬¦)âžosýÎÇEúÚjZ÷kë„ ùy¯H¹ˆ>7E±C½Ë ë"Òm–NnÌá||uu†–tùXìË»®lv·JD$€JgŠÛ-*èÂèoqÎ,ÌhüY6SRäs»ÞGŸ„vLöÊIÐé!)^´Åcµ¢¥AðØ6ú²fÏ~ºDÄLw|LËá¿æ¤Cžªug2‹©Cãj vÀ‡ÔdswŽ+Þd%}Mémï$T³çéÞé4‚XüÆ?¶|k`IépDÑ‹«l;·CQzÞŸ9U]Í^­„t=G>äês›8%õ÷½¥Ù‹7ŠÒã\”²©X{ÎÛÚ­ÿK ý‰²o.mÆñß¡‹±1Ù9”jÅÄPF“?É;§-‹r¡~gÍŒ5Ê)Od°Ðc?a’ª•¤íñH‡@0''K— s,ËÍ6½”E5‹ù -Ò²´÷}Mg2–ÓÁâBéjºêØÉ¥Ï!fìJzÝT½÷k°Žhgë«>ÍŠ;Šë…­)³;¯›ožï`9<}‡Éa¡E;!IÅ(XËaaú ¡^žm|ÌQ “Ì šŒ/MºÙ×WßÊ‘ªÀ¬g~™U)f•}œÐS›…Èœn/Z‹R­7ô'JHEöº2õVJQõ‰ WaIȉ8ݶ4ȱ¼ÑiÖŸÒP¼Æ»·,Î]³VðXT“ZK]z¢iÇ2ìs–QèǤCŠ0Êû;ú| c5´ÌN%?¼#@Lê>Á£m¥¶¤Šdx]™ ¦Š±˜—Ëî.ºøc9Yç”-¾§6(¤ë)àÕ3ðkÈZ.ƒúZ×/°7vyFº)IÆÝýþžÕŠY{¬,ž ž‹|'Âb#ú ¾ÓöèUSüÜ–O…°ŸË×'ûX¢ï£Ce?U.õÑÙ‹Ÿœ2ü!_üÁ¨ó£=)cGþ´O3ûÜÐ…ŒÌA|&‹ò9ôú±Z莣øTOù+sÿfê~nžÕÐì E)›õ},‹/Ò.í rÀS§u6ITؘž5‡5Y4û*8Ìú“Ëåjß>?sö™PØ4rFÉT[g]{¢+¶!×y7fɤZÿ$Ü¢Û îY—uY-îÚòù¬·ç¤×pèðF„»ðÁ¹ž80óA©7x†dü…KRÊÛ¡u²§Ið-íb—ìDzXU+†u1äÁy.åÙÜâ6ñ BïóðN/é4—nX%1Ãv~gþ…E0åÖ©Ë“¦rQmT_‰ÿYqPã9W¦.ÚO'Îñ¥OŒDÜ€õåþD„ïî¨XÎUæ ÈcÚ63b£}.g, ýº{ÙÍHR¥ 7pˆ¬‘q2Yî‘){'K§I\pÈl–%‡ã)²{°GBTôÚ6­¥}ŒÚÀƒŽäbc—þˆúáÝ`=¶‹S"Ù%8N— Ôô‡èš$½âR,¿I6˜åã~,7Ç™ºsKpgÇ,u çQÌVo]”‘”ªÝõP×ïššï¼PŸ+&££V|ë\‰gU®A)º²f–S€ºï3µÁl˜øžEÛuޱ½ôúˆ×½»ÍÛIô”ÍHë7sbœé›hˆ_¦C/U8Õì?«·ÜïfÝI&óð”€õø#^ÎÕ-<µÉõã%òÍÊÆ³Þ76ñ¤†[4ŸÓP¼m–ðÔ“ˆ™ )ÝšS`‹ñ'úo'*º­ƒïí7ü[Ý넜æp)¿·ŸˆÙÑÔ­ÎoQ»#>qfý‹ÔÊûE¡¦ð€“4oeúŠr3³%ÙûàìD1ÍûÕŸîû›Ìˆ2nchdD#›¬6rÑŠðÀÜ}+ôBÐm›itʾ Ã}Îñ B6÷ÉõWs—c—šDnêZöör×¥t†Ù=f §“ŠÎ¥×á`,µ>®Ÿ¸ÓÖF4íðÜ‹StU› †š¸3RÙ– Mz)O¡_É!uDg©-)Rÿw® rŒ_…£(ój—äüNÇEÂq%Ê IEü]|UO’©;¦ó‰e‚Íl¤ŒÏab{ŠË!‡ÝÜY4t Ⱥü h>uœÜÇ‘ô}<•ÌrŸás¯̰k£ˆ Ĩa«¶¬ûgÕ:Ѥ#mË)áX¯y½ß^8³é&G•* ý±oõà6F0¯0X (€—ò8™âhþÍPÞ¾eβFàYæÙ@jĉQ¡ãhÕú=ÙZµÿ5º«XÞŒ'"W,Ô7ìÁ(ÜqÖµp•á‡`eü.¨yJX‰†§Òî¼5ˆž³¥¬:Fâ–ˆ8¥¤Afþ¡!Ö‡$ÊS‘| óGY´Tâ ö.)÷TϺÄ<žs]fN´trW=??bh1û–]§½äå*ý2ÐXšåT`ð§[c»îÄ”ëét"’„k> 2טßð2?Ý5ŸW„Pß?9š ¯%–Kw,2ѯòq ¾íïS›9/àGßÄ€ñGdI‹säÄ-Ž_sî6ÞP#û΋UHqÞÖ0@}0ú›L·+í®ÏÚ®Xr-#HÏ ÞÇ8QØó…ÿPñš ·›æ:ú1uëZ——Õ˜±ÀǼ.†V©üzÉ\‡7—åO,’ƒÖÎSÄ®cOG#×cš»<²ËÏüã/vY.xðeÿ²ÿá§ÿÉö×_Àœ\ÆòK“>ÂQzO&È¡y¬o†Aîý¦¾hû bêÉÊ 4ƒoÇuE§÷‹ˆ*P›ý÷M¯ëÊ›y M¬ä–Úh˜ïmô;€ze¾¿kñ“’ÛQ;,d¶ÂäÍt•:žþVá¹fÔ{]tûÔ4\RºÑÿL-«áö²ZC]Ì/.ÅMíq-3Á¯¬'ãYkì fô'×~ÖC]UýÍ ©‰Ó$Po¼~P|æüñzWlë»»ù-÷>ÝÉ¡g• õ0 -Òµ·ß¦‘µ`¢JŠX' 6²–ÙÁZîí ({Ëì•IÞ:»Z˜5YVxR*Io£b2kJw£ü×䯹mM¯j^‡Xâvµ¶mšlf¢Sµ[î}öM×»rG·±Øæ17á&¯kÖ—dƒÜtß_×S ®e}NÄχ±È6Õ13è7}yŸí•6D‰%fÀï…œ€••ÎÎÙ[æÓÓwç©“5Ãr˜&Dµ˜v tÎs´õë¿URj«îhFá¯ï€Ì“;±Ìó¼Óá~}ƒÊ„}Û³“2Ö’óD¼­t©•—YÃ~6 ¢°íZé²JU[Ï<ÙÑBF:þø0yß(Ko7øìÖ:„»K›6/Ï­y£;Ó`œy-rchºuáßa™r¢EâÝ”†³Ô…ðF+Òûh.Ôs %Þ8xÇîØ \OÃ4pí‡ê#·©5Jú*dG´ä1CÙv-Te H{õ`¥h(äç§—S½>x¹ ¡³½›–ÇÆRW†Íˆ©É—·›'lw¿Úê©YaàdMƒRäÓÁäƒ]©ÞD€ö]-Í äH;[ú´ úþMŒðà†®ycï·½{d,ƒ6^ž¹±G3í³#<®À¾÷TÜŠ° ³Æºš;ÞžÀþ˜d@‘¼i ÇmÚSÿwÚsÓ'ÌýF\Õ7bmñ(7÷5ǯžlæ¤ÉÀTWrêdÛM`KûÛe±oØÁ$ßœÙ* ÎÊa+ì–ÿ•›ð‘B…T½(uÊ ¶“¬cÝæÊ§q7­i*÷Y…¾Aë–d¼"µqÃ$‡Â9@À]”šN5P8ùµAèzo‹í¼JÛº87¤šï>=îÇpQ†4¿‰ù92Ë«Òx)´…“^Ѿ)BÛ GO†*bÂaJ äpU¿Äí°5Éõ¸"‹ê®W)ä0õ°ßd&Ñ\r'ãeMùzíçQ¦ú¦bû Z´ÆjI³)r–0ÂYEyŸñùÈ…Œ•û$ìV˜ÖœÛÌÅ6ÿŠÁ£ìG=o®¢ò¾gjûŽþåt]½š½:rïºPóù-mÒ.¾ nJºôÏ[F [€Ã­8»ø³V”¦o|sÑRÃxºßºeø ‘5Ù7V¡ñ8[¬8sÙÆ8?â™|kùJW/Îû,OÖ¿¿d·ÌóÎ>iå¾ UÝ/Û,µsÓû¼WÁÎã‚xïG‰Ûé®…¶z°–_¿gÓTöŠÏ8›ŒßBï„NÖ86·(3J¨@NåS ¯Ø|ÂÆ1‚Ì›6”׺QdiT‹Š9—A^k}Ù-¿×í¦:+!ù5g¤4íí`ö´¦ ‘Õv'ã3 îxú‹öEƒE¸eÛ61È4Óðœ=½?¤ šŒo=E¥XÒôZ|¬Iìk}„Aït§ŽM¸l²mù[,Õ"¹\”çù|²%o÷0²¡ãD>bWôƒ†éž¼1Ìo³IóEx`-h…Ž×¼K«m>°‘»¿õHëY׶ݤ"‡6¦\â{8ˆÑ{*±6›Æ,YR%ÒuÝÿåGÈÝÌR¾mW¨KÄÑÌsŸö+19œÌÚÍôÀÎnG¬ã`Ma.Âãn+Lë¶ùżåb¨žïgh³×9«@_ÑÏPäX2ô¿u8íèûÉœ0üzvÑ+€]ŸWgpÌnRòkUåÌVºs§ëóýXÐdµ*l¤¯Z3ÝÔÏãþyçÊfØuvj³%ÕMIÝj­¬øËIŸPðTÞ9Ï›ù^6Üt|9Q¡ÅI¼“MÙä&¥ŠLKœKY×QÈŠCOm1 %‘¼NÖ÷Ô³ÔJåèµÃáYñþé) ëS½trƒÙ¶{aîF1`(o %æŸ8÷jk2@¯äÛMUéC’Ö fïS(2ˆ¯ýT*ðÖ/U£[ ùSñmA}ò£"BÉbÛ÷·[tð¦ýŽ´.gòêWˆ$> «dí•z‘™…BΗ}Þ¸&˜}Ÿ·¢ ƒO놛ÙyÚY·¸¤ö(„ñJ¦>xÌGÅWHV#Ö“[9Fõ‚uù=ë»ìN9ú§3*.ÁÓ‹u©$™µ­^ò„ïâŽ|[ ï¢ ¨ßÙkoá#Ó gˆå Q¤ £¾nè^¾îãI'+äbÓ9‹5‹ô³š2/o‹oMZYf$>Ò®EsfŸEteª”Ïëµ]Ï*çW¤GsC‰ ¿ì1ò¢É…@BÌÁ¾¢ùpÙCp„ Û€˜JõKÖy³¼r{Á«„ÂÜ4nÒíü8ë‹£6SÅ ‡{§IS’Òž?þÅ…³ÂnŸŒî Dª†òz„ª÷Ôv8þ™-n'‰u®¾ ùz0K,(ÝûAý˜ôŸÓèææ%‡?²Ý|)ž”xà PÚÔ•èÛQ-,x]^>®,{ ;¥—Í@·Ûî£J:/·{è˜R5™: ÑÉ ê#ýSR[hÝëÏ›$GånÝú<@1jö¸Ÿ%ŽÕ“jÚ²‹ñ?¼SÒͬÜ´àe(DtÓ\g7NÕêLï¡'â…bñúõ¥YÒ%n ›Æ&iI¾.™˜,¢Ìãu‰ƒ&\ Ù6ß© iëÕ2Ÿ[¿`ϪÇ]ȱz¸§…•«}ÚxÞ³­ÁÁõ4º+ùVÙ=“0!Àä ‘ÒÌz²näôÔíGÿh9£FôW¡upzòÂæ§ÍÚQ¼BЦÙ8¬«¢1Ó·æ`UÀ|Ú™Ž}p£à8Ùžù é–ò—™S)ž)‚ý,°óS¾©•ºMonÏ!o†`*V¬•ñ’ÁÞ;˜‡kÚ/ƒ~£nîf²ÂeåµE<Åóù“‚ÇŒˆåü¸„\mÊýêo;•£&†+jøCô(Z¼u¢í·¾°~ÖK-tîH`SæC8¦[¤Ï!ÓÒ5Sc26H¼¾dºCL¤GòÔa.cYÔmRbP÷ å¾õQ&|³þ@¶cÜõ÷JE1~Õ+lN­4—‰ËÉj`ß»õowF“ﲪïÝú=Ú“T #2kW'ð²¹S qóÄ!Š e ‡h ÊS†Ú‰)Ñ™‘ÝWÄ.mdèaGÿóOŽÜ*õi¡…Q|GØëÊk‹E3±ÜmWë3~¼i+Š„òܬ–ð–!³¼,ÔZ,ˆjíÍÆJÁO TcN¯ž8^~ÌP6,8Öb[Mæ“'Ëó;&éÇ®JFÕw>¶¬ÌY„,{C Ú3©ûŒ×ñ"îYvhchW}8ØÚÖ¸ýázði7Q0O« ß5ËQƒ¹6܆’¦à«Ä¿ÐCûÏ`צß +¹œ:Û5Ë‚èþŠós‚|dÞ0×êÓœIUU}R!:áì—Ÿhȳ>K¦1)ÁÞ—<*G¥:þõÆ€) ýkfyWøžïË’ìñ|ªÔÛð³"ýYóöâù¾äê'ì}=ú‡ZÜþ8é¾-Þk–êh9šmzÔû¼ã/lt&ßí.¢ÙÙû`4 ðg¿¾Ǫ̃­ÐMªçZ¶üh¸ìäú[˜óùŽr‹QóÞ5X±]ÎnŠ+3™R,¹µ&ïZOE¼39¨ZõRªpŸÍ?劬ÜÄëlÈö¿'½¿ØjIÕ¯È5D"TAœ²˜.£oý¥O›Ÿ‚D]DPÜ37XïÔ>ɼ·l?¸uæãÍèÖX˹UaGŠÌRŒ˜÷ªg»‹š„v+cæã¾@@ÓR³R¢"œ¯/þ§x̲ýžw^ÑÁñƒÉÏû%:€ §{šGÄšÖs}Ï!½m“f¸}.—àÿÙmeɶY’kFœºÏjJ:ªJî"Ó%”ì7òV6®Š}äQÛ³§ ¤¥ÍFó›Åz£-ÓP¬XÊ{“†U9}µ~Ñ´”Ë!lXË€¯jeýb¿úC¿O…í™ñ,µÀ7u«!›¼FWÆeœ óëNѲëyär}z~{ëò,ѰˆŸ«GTi¾+€#„¢ ë‰%{oc©E›ZúÒ¯+7ßTu@y'Â@@±áÍ+œH½Fßëέ‡BºY¿¦xk¾uòœlŠreîY2y!2WàÖÎ ÇGZSDí2˜¼œÑÍ:.Í•br\a3£¥^ŻʥÃg¸áå Ú8·¯ Âá%‡³!£{¶Ñ!o/.]g"£ÛQîÂr¹àb¿¯Â¬»¶3hŠs3Õß÷SÃÀ Êro#èç.*%èM‘!Ћɻ Ù5”üT†Í|Æ7Ó”³7}d¦“m0¦ê1‡/Ÿ—“FÎn{„ýQа]­ˆ—ŽÌdYÓØ tˆ9Žø›Óš®+Gpj’äßêkÌÿ ÷VÌæi®(ùdá>ÙéòÁŒñÿM?7«î£ƒ#kíÿdzü£“Š>:‰òsS`>W7ûÁŸð±ŸìùPSÒ§â}ýd9χ´ÿ“øav¹ddalpha/data/cloud.txt.gz0000644000176200001440000000264213162771466015067 0ustar liggesusers‹UWI’7 ¼Ï+êX¸ž¥9ø";,)ôÿŸ™Iö„/T×€X$Ð?Ÿÿþõ÷÷ç×çóëÏóãÛóóÛóãOýóùùýóû‡?ùøkì'_“¿zËê3óùù%¶×l8VIlã×®_}?¿?òd9ŽñÄ+!Nü²QÚ­Äþj ß^Çõói/ë¥ÝHÚªïáu8ë/³Ò2Þd7^sàÚ>K{Rœ³Lò°q¯ÈŒ¯+¦ {´>7Œ× ˜0ŽÐzÊD"¿?ÜJ^9XOõ!çùª¿v½ÌK»L d¢áUËÏÝò ýPÝúEûõþ€ý¤~ƒBå¢Âkú¬ðôå“ cö ö§ä¥ßtÄxøF " ‡~ýÂËá°³pC×îïÖ)wìðï¨sà3“~@4ñW‡ÿäÿ•ȸ˜h¸”¢/YòEy; ¦K-õȲ¿ ¬‚“!?§<¸ë…@¤‡¡ø•„B ÒÙ‘¿îÔ¯R†Lw¤#!÷y×T8Y%f6Ë~JöQË—o¡‡p(ýFù€‘<•¨7+Ý¥ß /V5òæ¯ÃÈFþ»À;š^]®ME.O„þA¯]ós‹ñ ¾¬_ò¯Sù TºìoÊ…¶,v›c["C’¬)þ€“ê-§œ=³·š”71—~Pîìl» oK5-ýd4ä¯rÑí‰æ Ê…ßÞnÕó—ÊOÙ/ˆú¶/;òW×OW& š€f¼ûÓ ?©/æÙêdS8¬Ý<öÙpÉmèzÙßêw}ƒW»…Ȩü9®oføÃ/<ØäMàÀoàý%”Œ0ÿl=¶+yu+~²ã3K )¹âoûRKò«ü ¾¨Ù$³:C•¬c‘¿ŒTžòQ„§4ÈAÈ*‰#åvž² AŠ™ Œ~¥^Ÿ€,¤8d_³u[ž1zaޝÂ_¼ß_D¢‘äL,D,6`^*™Æ ¢¡tõaŒœûcÐ…xh5K€½MÍÐ-,¾ÂØ ¦ñãF b"=`\êiÆà¦ "&‚¬øº>Ë‚k†.w§Æ'©'‘tX’Y4ug{Ó~jŠº'/€ôPÃÐÐk <½Â]`*©‰ínàDŽƒJΉ!’Ä+8Æ, ^hÃpÁ©hâÍçb¤Ù.–ÃÕv¸°DÀCo`¬ ‡“H'‡}]-´¹)5dyà “!Ñ^¨)ábU{Î,%+öC-¸_´·Þ´ÊG陑„=yƒî98–.bbTwòäd&ãtvÓ"Q;ÌØ€\Pkwö2™ãz´¤‹É /d:U1\¹X$·ÊdÐH.!òäpt0Îu±9Ø–æëŠíÁûñ®S¸ŠK¶. ©îë=Z×Oª&F¥ñLžÝ#È¥º[(ˆÛÁs¨Î¦äð ç;ßAûp¡…Åb¢b¼;‘xÌ*Ž#0D6Z¢¨±£*eajÊ“{‡‰kLûÎ$`¦öSnyŒ=ßÍ»X‹‰Îj°ÉêpÎ%JjSƒ^açÉó$.úó5ߡǙH ‰Âf(Vmˆ*QGw &[0g¹Ÿ¥™À…¥ú]ÑîžÅÝ.ÔYT~ÙŠ<ÉeÖ—q•&½Ë½k{ª:–‹åºÐ1 7ަéÐO¹WðB [‰jr+Ø|k±Rö`вH¬Ú«L.mû8çJ®Å…‹~wŽÔâ¹0£kEÆ,M\þ^±4Îû‰÷ÀÅdãT@C«»´ê:Л°pÆþøßÄ!jŒµX𛤶 '¹†s×·æ&Ã&‰%®ò?7\\|;/8÷í~g|œE‚A’W6k88²µûM|Í~ò[µC95_\àêÿgÊf:Ò ddalpha/data/irish_ed_MvsF.txt.gz0000644000176200001440000000343113162771466016477 0ustar liggesusers‹}YÉ%' ½OûÙItþ‘ЂÓöeúkí{ýÐ÷ÃßOþ~Ê÷S¿þå/ôñXÿÐJ´ÿnpnÒúË_›rÊôÕõ«öþÊþ1ÖÕ±BçäKÍ<ÿ÷•|ަ<Ë ¥s‘„à’@€h´ ¯=ÓÅÌ9Mó°Z’ð–Ï¡’¤$xÛšõÈ\ò¹:S¤I©<ªÑ"{‹dd3´¯ E"yXXAPˆ,Áïz75í2W•êÄ)­+ÄYð6=îs5mkvÐÅ3}8ç.Ò ây'všI–¾&DøòjwMlä6Wc(‹6…w#±*E¹ßÞQ%Pþ8Yd[f*Ú^ÌפS¼ÖðP†SŽî¸­Ø/‹#;ºE Ò´g?4Un³’EÀŒ~=Ùí)8gKEÐ6p9Sº%ê9hÍ-Ñ#v§:—ùD3È›Á}ØH“zkwø³‚ýÚ‰AIlºÏræ1¢T‹¬‚w>,©ëÈSeI¯î—ÙÁGôswèiLŠ·œ»U¥±4âLYÒ·+4ùŸÃ9´ˆ/vwH®P:ýï ä™ô}‹­Z±—À‚ªÊ¡h;ggÁÓ•«E×XTÑÓn8[v X6Ån!âFã«‘ç.ØPk˜à©(Sƒ´¨jS¿á# }%<%³Kð7Å$¥§¨Õ&wµ EÝ®<œƒq¨éYbH˜Qô*zy×d$W»¤@ò›lÁþ×»ÿFU05‚t“Üzq]Í‚Yü݃#Åp…è•$rnwÏØÇºš±W`%S&¹ÍJ–œW±d·½$w–”"iV"§“ç*¤•Í'–Ù,,5¹<än–»Ñe¥sW[”mýØÀ,þçnJ!+Þ‰„<<ŽÑvE™Ò‰$ó É»í^]B4ókÕ`º4G»ö_wçuÕu&e¡U+ î7þÎÖ ùñš¬’ŒÒÄX†Ö’1ÉÕsùÆEˆ’Ó††½L3¤[b‰Œ˜€Ôù-À{D}…oÃ!x¦S¯>áêT?ò—9˜1£(]ô›¤àiwÛK–“Þ<ŠËÕHÌM©F¹´ XMPö´˜VnÇ@©5šñóшDvX ^ëÒõ+ö6•ëü¶¦nQIöš°íaC…å5î4 ¶_˜-Í™ƒ—W&pc |«ãšC¶uC3¹³‘;†4ë.ç}«tfº6¼ÑcÉI:DÏž98Õ92O[ì.ŸÎY»lG9´é€‡›Í§…M3ŠÖËõ]ŸžD`XS佨~+Üm¤cÑÁAšaf„ÁÐÚ)×%A.׺îÙ'‹Œ±‰¶¸7ÁÔÚÑMZÁºÛÇÚ½k’‘já©<œ:G‚¨Ú$1nÒr*Fbã$¦grõÈÜ€4ŽÈ è8tkQ4ëAé*ÔŠ?(ƒ0 Y·§¬êS¿;B«ÐEåÆÀ„¨P9¬FçoézƒœžQ4(Y'ecg†±ª‹m*ØF}ÛìáˆêÕªÜæôi@ŒÞ Dœ fæÀ4§hm4·SJà-3v-"q6ðVo¹´½¨¨I% O5ùt™$,;ÎXb·ĪªÃ­ÖÊ1âÝÁ0籠µ&lØ»<+¤:·´HVUs,h1—óöQ(Öº&²Â®E>*SdbGNOÇ2]ÕŠãJ¿Ìm厾H:£Æ­¤ÖÝ&D›ÕÙ@=”Ûª±¥•Ð?EL8œÐ·gá¹Ât:oxðSý®Á­«k±«ظ%ì¸rX¥ý·çäèeÆRo%诙 &h´`Ój—¬ÐéMñw©îö¡Æ½Í¤¨µQo“óšmtà§þå ‘¢„ˆ5]Â.7Ç(µÉMOWŒwSÆGtt«rs•·¥´iñmõ—<„ž°Ð[µx–Þ\b3.*±LƒÙ Ä‡:Ê:LT‰!ýÌ—wÓ[¬ UË[¿4Ât‰D·h`>X úe î–.¸Ÿ©°Éƒf;Ì Û¿Öu"?*骬97)(˜œg‚»¾êPW!3b”À>u l1¥"Û*hÌc&âÊä/,ŒPÕ/Kh'`\¼gO«%•Ö‡Àréüå“ßÃgýëdønQ\qX 9 Ï y¶YËä·v'nh‚d¿ßºî¤è`|±E‡­¼9¢àvÎèìºæw¿T,T‡Rä$}¾0çç[E‹ŸKîÞÌ̪ڮWŠh)ߣ$wc¾!jŸTÜÉÁÛì´^ÇLi¨~Ž!‹8cvœ¥'Ôv2ÛvJU”ãÔ¾áŠpI(fVë¨ÎrÁЙA2£/8zÕC†væ_¨ÏZ;Ÿddalpha/data/pima.txt.gz0000644000176200001440000000440013162771466014701 0ustar liggesusers‹MX;’%± Ë}Š>Á”DQ¿Ø¹ãñ;ðý« €d÷d»£'‰"AìßþüÚó;ž_~çó»žßýüóó9ëYç±óŒöcOûËóç_ÿýÇ~úÏnÏÍŸŽÅ¾Æ3çóïÿü;÷~Ž=ÞŸ1çÂ?¹³=}a}=>ß?‹6ïc+Û~VÙøËs'o\œÏÝÜh›§.ƳÏ3MWŽçàzDŠ+ýgpq,ƒÁb‘73X^¹i¼d<Ýí9XœÏ0]i­=KWÚÓñzÜ26âűýǰ —ðNìáß_†ÕþØÃ”põâD×ÞÆü]¥È¯ÎÕC™¿qñ˜«­Ýžkϲgã±zéE~ÜcQeY|¸w½ôvüîòXîeŠð*™áëyeÓ•‡Ià;¯ïZÃ"êqÁ¥+ ÑÏžWv¿‚ u#»øƒÛ›†Ëh†é-ÖêdSD‘úÙE¶PÂŒ¨ñ)8©oXt<Çê)((^Ú¿+qþð‚ILÞØµÑŽzçÙŒ?‘<ǣب vçO‘v"ó1–ÏD¬ÀPo•¡‰Ä©¸…^„%Œc‡Ž À÷œAô)@Ð(áÄíùLž»PëÊÁVQœ{&×™<¡y”Asê™øŸe@ˆ ‹„W ÞÚ(ða+ áO=p ò¨MBXãgcq–à㵓íËÔ[ìÅæï‰Í¡NÖúƒˆû©Z_¸ÍTÏ]õ\·€€Eܵ¢µÊ"NÐNœDߦ‚F´¾6ë”5Sµ‘ ´ bþi<6!ÔMÉE?a‘ù›¼!aÂÎGö“ ºo±ƒù€‹ä/'É„”0Õ¹$?-¶sòPà/F©]E \2h´‚‰¿°×ª`p²ÔÈÄþJOg8Õò=úšœi ô=zÕŠú:º —v‘¦ö²ÿ²Ö(3;!>Óïþ2› eLç ³.í.€-Eo9÷™,ö5ÅÁu.iôË;øÇ‹Œ•÷÷¥Ø‰È-éy‡842äÇQ# 4t§ó)«2?ˆ/„ëÁ3“¹\ù€‚Aùª¾§Ðxô–ŽŸù i@¼øí.bàHÚü^Ú„"Öíp« 0D¸+‰:2؆ɴ–„‹cÑ+b©¶òS¤y¤hP©ÙêÄÂV }‡† –Ž@zÓfÒ[«íƒ婳¸ðva_¤^þ! …Ù&Ÿ!2ó%“„Ÿé«­K)$*ô|ÂzöRicË0C§ ¿P³B:f–““¯zÁÀŠz´Ô V‚>°=[ -,ITY ÿ®JQÔ^U0v^±[¨)Û8Htp§†¦Îˆv=É[±j©m;ŸBÆR!c´º¬2g.v™.ðVR¾±ôÅ:„Eº‹§Lq|õ°d‘à\±•F¦üZ—dvö÷‚/FI³0l˜þˆYØ•¢UåApº®(jR¾r†¿ÖýD¼‹ág»,ØÆ—s¶š¶Ò7ûŒ .8 ¼T©Ç¡ó¦¿D,'øå(Óàáç$58·’4$ã¼u'ûÞϸzX6©›è*fì Ì7,óÀ$y߯)#ѱ¦íµ¼V~˜=1EÌ8 ÓW7„fü1W±X ŸDÙ,^&W¥yGú²›,A¯Ì­íõ¡ËTÓ¯ñ-§”Gö÷y'@z‡¦,žJÔ—ÆÌ(xÿ[à%½Z*Ž>@ߎõ¶éG «;ßž‰Ymµþii´¼¢áE”ª“j+)3¥Æ\i"GËÒéûÎ0÷õà!0c”™‰1.ª˜tvï|øã¡œÅÃ?ù7ãEÁpašÚþÎxMäx@4ÚQìuôOÛS îš&°‘ÞÐ¥ ×ùW—ÖqððöÎ7Ø–,¶ƒsOûFo”3dÉCƒ ¡‘YOs¼ ··ûËÇ@ÈžRõǰoÒØñ á†ØP¶º·pàò]£z{´ùšH˜7~C¯+çQÂù”µmáç?ÙžSzÆ%:wüIß=IE9²Ï&Ö¯ä[^´Ž•a Ÿ¸”ì”Xg›¯„|8§è2^»ÏË à„aN 1¡ÇËjÕEU]9Ô¸JØIâ"=ùíÂÒóÆl¹c05<œ“O%x„zÒQNÃ_¿Ö$ßÒCÙ Ž^ ôhK uòaô„ìdÌd^ÆõÔd`ú ¢ñ[éïÅ6®¢†1ŠG[_3M!ÔWc÷ÂÊÅm˹ >UM¦7²Ðµµ[½ÓÃ,¿¤Ë&½e9ŒÄ3WX*9Ðr¾ÎªM1JúÇ•"Q#$?»y}“‹ºl ¢kÈÙÅ€8ÖŸ¯U$qSÊ‹ù® s—~Ç÷¼¸§”öPþðÊ®sû¨[|ÄöÏçõ„ÊåWƒÐë,(µý¥Î)Êát³ÛÊÃ.’‹æß~JÑÒÈMõp=ÅóؾIþµ ëßÄÛZ5qܹðL¿ØqzoüÒ6F¢Á³Þä]q'ÃM=¼ ‚8u²¾ä4ïVc —£õ†,…(½¿:«(ˆ­ ª¯¥ßcèã k^ŽÍkJÏO'.k´)@£º)÷ÉN—ÓK€º¾m"«Â^X+ø€Ç<‘_2F/žì*ÀÖÜh±xì¼~¸»F2fgæç®û}76}I¤ ‡Ÿs@Å_¢Œ¯ ÄK–§Í/]n´ŸHŒ„5êS†òK… ˆÎ°Ò<÷ÿ"Í`|áddalpha/data/indian_liver_patient_1vs2.txt.gz0000644000176200001440000001570113162771466021023 0ustar liggesusers‹•|Ùq$ºŽì[QTp_¾Ÿí¿%ƒL$X'&^OÄѽ-‰â†-‘ëoþü-Ÿ¿õó·}>Ÿ¿]¾Æçïüü]Ÿ¿ûó7§Ïÿû3ú'ÒwÊWþä5?yÈÿ}Æw}ê·ÊO÷'ÿåS>ÿîßþ{F“ïÓgÊ·õ[0AóqSþ¬Édm§ÏÿÖgÚT sõ…¹ä;ùƒ%ÿjŸ’l9ù‰ ˜˜¤ÊZòËÝ?e~úæ¤EðÏþ´_Êß`ã%-ˆ‰æwÈÊ2@ç?ep™-_2¸7ž¬p3 •}Èä‰{ÉYö‚!2ò'ËÏ ‚mÉR‡Ì2wùÓ;M.Uäܽ~úzNÕužÁ{.rõ=ã\çä.?:¾Å Š\^•Aƒ‹Uþ±\q û©2ÏÈXjr!ü¼ü™\ñ«w\pÁrŸé³ l³ä°áÜ:6Üd"Ù…ífâ‚zØs^õ³3O&÷W(P9ÓŸºŽ,ä´Mþ-o2Ù+Z9 sÉíCëd’J¹B²s\dKQ$[¾ªüXö§W™ížþqXϼN¨Û›‚(—i÷Ñï˜Ím¶EùVQ%Ó¶îZÍ™?ç=ò„òÍf!²#UDh2Dfo89—¢äê‘T¨}zù`ËÔu¹ÀŽË„t!$YR¬eÍþ™ÐS ˆî_‡ YEVÄU%Òï°VùKª¬ÈV7œõŒr/òQÝ öÓû³Úñ2zɥʔ™{Ö¿.ªØMÏ.š/'Êš„ßw³×^âÑE£«\ hÛÕ7·L‘ÒmèæÑ!Eu-Sxø¶ÁˆÄ‚Ä?ÈOè_þqˆ½rsy³^pB;ø<Ñ–ptK`ðõ’2æjp2¹}áöä÷bz²9)úâÚªÒ¨EÔ@†ˆ©±ÑÀ ´6£íOEÌ£ª©HÕ9ªé·bibW"ÙþµC»º«'BMvÛÃÄÖŽRËüW""™ò“l¶= ÛÄÕü2eD’«œ®ü…ë-zSó V&Í…â¶ûñƒçjçè¡>«äß«üZÖ­l¤q¶ke¶X…jËÿìá‡[îlT‘ì d¿uÃô¡ôÅÜÒ’3,È †3îÉ·Úô®ƒÌÍoÚáö¨ÚSm-,Iv¨î€¾™ë§‡¬ r(q ¢k ‹ÞÃù(?[Þë³/b˜‡T³¥Ø–üQƒ–xQ3#Îaîê†TWNuEò‹c[°cèÆŠ‘SDVäÔÍüþ4‰õæ¨cRÍ–lŒUÇÇ@u§2É˹1QUí±ÍÐa9^èüe•…ªYáøÇ3FgQQQÉ=Íf²ÉQ½9…"NCtm j© {ÜAÓD#ÄÖÖ¢sÑAŒ:Í£ÎWŒ¨ÛV??©rÿ3ÄÌ’ûÁ °ªeþpŒ¸m\Õ„œT¦JA ˜©@“u *ïLJËú1U¦W³G!,†ƒ²-~/;þ3¨$b³Ò8È}]œÏÌ„KÃÌaØbc“å£ÅâŽØÌ†È5#Xf ÝNVs+]”/aâ`õ®-TÖÚp®ðÑÀØ+/±¢NÝ/d=ƒ²åãh†üØÊÄ=Í n|:é-B)åVl”ßfÙ'ÞÁÄ:„«:é.¡íçž*î©ép°dLS°¨€ŠÜuÛÕà ëèð@îŠOèYs;§ÇF6Ô‘xjš‹â ¦ªÚRxZŽ·ï+êãÖø´í{æuf‘­V⺩„ëµ¢Š‚.J\‰`²ç>HÝñ"Ðmr; tªÏuÆy¬«âZ’õv3PV\À¬Ü÷*`o]O1rIÖðä Ñ.΢ZÚŸ3\kÒå Uuª%]Í-@Dô$ «0x×<î(áî½£yÑüÁ¶lW7m±pá"¢Aç—¶…¥ U¶šý¢ºÁ"Ç–eéa–BT]L‡ò¸ÜFÐH4w ³ÄÔ °»!æ7]¯)|쬃ÓJ7L5ì¶îævª¡œÇ{óªe£[€ÛÓØ%`§òÏCžpµ/†a¹þ²¹á¶€ `Ý`Œ¢ÿ o9\Šù—EëbñÓLØr5 «¸à2¿GˆíTnêÜcÖÔ1¨Ê¤Õó<0+"ì4›°³pÏÝÖ¢LÇj„1H?0–JG—í TmÙYÛ*[î+Ãà†¥M%%Ħ¦'Ô½×37 ‡!ø7Ù²KÍŠ£]™Ê£1t³Äpû¸‚›Ä1RÒÜÉ/¬?ÃÛ=÷¯y¹Ò(‹qŽR<ÓÇuÈ¥4³ÁN[˜Bž ¦—…|O5K4ç,¹ti›ÙdŸ)„ðšaXP1úòiH¨?ëJåDu°5Û÷r WuV/·ÞÒƒÝ-ÜÝ£í¸¹'«g’'qYˆ$Hut³,wf¤ª,WƒP—ˆ‹"E’‚M œÁo­s ù Ì+¯x‘{öƒ¹oÜvfzs3ò¦af»¨à¶-˜/¿1)AÕÁ»³DÄjTèZFºEÅj»ì‡K`¾ØÌ2I߈ƒID~fæ'ˆŠÞMd éÇýã¨aúbžGö"›ÏîE:Ñ3Èò“zœ1Ó13e ê2µ…£ânÅsëÁo«X„ºÍ§[Í?bþ¥âê„v¢5kÚ …‰#žjŽKq„´ãƪL0ª‡›ìœQE>DcÁ21÷#Vâ ¢¨q¶1>¿˜·É(‰‹rö¥˜-.ÕŠ…Úå¬â½%ìyñpÉb k¸F]äÎ=ÁD}ÌA¹¦{Ó¬a8·Òè 6u§(“Sjý•\#Jš†’`úÕ­¯™««—íH# .6»Êƒg‰®SájrÔb¤º »¬%R4.œÉLøú–%ÕLr„vŠÖ5ˆÏ 5¾%:û iU™œv|­!²ì—¿T°Åc«õϣ衛Å{œPâÊ ìdq6cª(aKþ°»Gi ³ªAÉ‚P<ÔÌt-Tv„Á¤‹¬ðË‹N–³h¼;¸>©T ±®$æ u#)³0·Q’z+@¢þ%–ýF¢Q d2¤'€Øá΃ê–í&Á$júäÛÿ<äR"­jšT¯ÑFgCÞP"ÔÞ~†Þö¼>]d†lÕ‘xz£ƒ°#Q8¹h›ÁðêÇ,f©UœˆRtÁiÅ<EÀ)àý†‰ÜÿÁ@fÓÔáxÑìo’|ÃñŠHšú¶'Hz&M¶[7òiîó NÕ¥ì0dü8U£| ¼Tãâ õ¹ Ƨ¥p²‰£‰E=Ê–/$mR\‡sOád"‚ 9kOÄ[ ¼Ÿ¢"r –Cj^YY)Z\RõjTft•X<'|ù("r·nHXìENØsåéÿ¡¤’«À°¤-Cï;÷’6õZSâµu%Z[FŽ•”Êók9á_Å6ëܲ¹ÇŠi–öê+¾’9~¢›HÈdR)Š_óa£àˆ O͹ÐvkQT?X7Þè¶+¾ƒÏÞq[:)ä4!îià߸íì›ÈŒ#†ðë¢uWb#U*e™OĶ9p‰Œ?µô=Ûà¹Ð-`µ #â/ç_ 2Ö·œf‚ ¿æad&¤àpŪ"1Ȫ*Å©¯´h ÝãÇáÝ Š[*OâŒçë 6Ã&#zl¶°ÛÑjj ìR­e¡ðúÚ&ÏPz {UihZèH´ì¢y•û»K1È90„²îV‹5­éÁºAäƒhQÿûT¾O6ÔI”lÀôö:W \âô–ÊûLÁÕa'2²Ù`ù-0F9U¨Yc)R èæò~s±Â8|€˜«VþÌbà˜S—yq\,Æn6qˆq.ÕŸP¯„YÉQvJiœ†–« N/TÝzSàù9Ö˜)kÍ%Gy>sˆKFåî''“ƒݪACïö¢­R·HDFzÜ 9. =­Fã†gºk­áXŒ»á8x±øf:×j‘-úóÌ2Ör×~ò‡ŽGùs`S›~Rï/н€48”ÙS¦Ï°lü-褊n§”‡PS\ì3Íx³!hš¢™Lͪ·zg, YN²’õ]Ýe¬³à×Ê“©¡Ó†muF;#GÜlÓ!ÀÐ:‹ïƒÉ%.ÈYY„[t³å–Ÿ/H¨Œºÿ1ºy¢¿ÆKÕ©b좿°Ÿí4uRUN6+EwT¡¸ XkXRRébˆìF„Ñb+ÙÎÓ~N;úÛE­TëbGt­ž½ ¦vÓ97V+È£lÙ~¡¶ê4’6 ¯Q¹s€Ï<ÖÚ†èT¼ê É©ü§S{ ¤3Cý¿¶€„6“r_n íc3/™1jxÙ›Y$Ýöî†ÿ§* `ªÁ ”w±(\|®?}¤52µP!Y­yc€jY{64º¥´ÑÝ©‹°N’^´J½Š˜ßv£ àîÀÝOó`…9 ÐA—‰­µiÒ):¥ßŽ™®™æ6edR;>Îò¶!üªqxÓG‰D-J‚yiæ;ÑÀ=ÆxG~y#ý›^@¸ŽØ}Ü"Ëò6õZ”Ö= ”~nvmꎺ]@þínÕ^ å0G»÷n2HÒ1µµ\®Ñ‹1FwgtœÌ¯#¤KD¶C“Ñ|p—lèÅê…=rÓ®¨¿‹µ·(ßW›ª#qŠl*1gQ8쀀T{'ó2n…9k-ÍÔk0zók¤ÙÛßE™•Xø!4JÎVV÷æmóyA‡ÐDÙÐÍ}¡öºqZ;hA«;»q9Èûp‘úçj$µWÚꈩ%ð‡r¡M¡ ŠÝA¬ðNuèí°,aHVm ¶¢ –¤¨·z76Ï ´×À"æT±q•ïb—Uë|Ûó68jø<#³®ßï–]jO6™Ÿó€ÿv…$fïõ¹%•í$L¬Á(wèY]í,/Xx5²À›i³ÚÎóu?ÌÆfSS¤§5¹£ùF-W†ÖžYžD?ç~ºìwˆÀu=ÚC܆*¤´tÃ**TË6íû°@½l–’zã#ü^gâ{¡ž|›-K»SFÌZŸ»Fc€Vú¾Í̬¹³º‚]ðŸÅû«W"£Ä®‹²ž†©âI¿áÁ¬¸ ?¦Á”3 žÁŽ:D+¦9FgUiJ]ÞÈ{lF`cxÁlÝW§xøÀ¨´¬E+6ºg›ý9a_i–yé+ -q¥h*®äN3ÐtHæ&¼Ð½2xëJês`¾©Þ< Ë/wMÓî2Y ø™(ú’³d–ÇEvðÿR¸÷8Ê^ªf†âá4Ì^?55;•MüùIi[>4.rgf†§A‹ºÍÕî£ÆMHì»M¶T{Œdu%{s,#ÓÌòÉÚÆ›ÕF²¿F ¤›Ø°ø2ö•Ü·'Å­Í_îPKd¨­Åž©r¢eÖÜPìñé×C¾‚Í`‡l¡t«cu=ýOžÅõ„+w›Ñj+yË\£Ô†V™Þ"”ÈqMóÛð}©›ôÖ\OêƒèÓóz{3›ÍX  Úœ¥x¿¦fýÕûn pÐ4Šœ-|…ÂÕkÞqTLÅå¬ËBqèÄîš ÔÓìSOJöÛå?ù°ªÐXUÞÚ ZÊk×FÇóÞl8WèYIâtØ6‚_Î?UØ7™jêpúÇ“—y‡¸¡ÔÓyoœ’SNM{ïàŽÊ‰¢O†s•¤¸DRtE{„m—®ú›ÈÛóÒ /ª’&ùøˆÐô]¼ù6“3± v½¼œò`éà2ó©œ?džoMݨ£¥°ì¦ëÆ ùƒÂ¾×õШð T5Á𢵦}­BÔ®dö)k«FÏ?=Ì%ʳJ€ì]ɳeÊÝÅxŽ—Ói>:­ÕísÞ´kÏ@Öbv»e§÷Íç #Üã'{Óµªp/»LŸ¤[ÿ†”çÕYöN3cëzÔAêb6Á €H,Ïë,ÿ8Ñïí[‘‡/ܦÜkyžå§ßxLöc sxLÆõ1®CÜÚýðÓëº×ÃN4“²Mø¶Û DZ|]òçŒ4¶2M!q’k­þÅLÔ7`Í-Ò*€OÅËŠŸý8Žü9­–êÔê/z˜ŸÌøÄtJÀ6¶àÓöq ×­lŠá¯Öâ‹3#Sö’+Ž÷›o‰•©âÉ2[{ªÖÓrÚ® 1mA›ãr¬ÊL*Ô[/‰3›Ùo…imyF¯e&ãgßgqSô t±íL}¼MÐo°ÚýtÍÛõu¤>ìÀ@×ÿð4œGŸ6[E£»µÉn‹B|‚o0Ä÷SYÜvŠž4F̉*!jç+ ’úñ ·æ¸˜8UÞÕ<àhþf4hÕªÉÛE­y—Ôù›Štjºâ"8üõɃO3˾äÅp-¯Ý™*/ÃYìd›n(ÄtZQ^'<‚=Ûie{(͘2«¥è)ÿÚÈ-ÏC± ‡üÅr©:”;U³µ—³ZW)¶¹šØy3ÿ“.?_™ÆHœ‡Ú¯ðzc*¡r…u×l“5¿Dm5a>”9nîçź#KÆHñ'(ŒÙ£‚Û"§3)øñ•mþ™¯ÜÆç>sxÚiˆ¤EÁçËÙêÕè' t¦5™¨Þ»ââá8–ÀÅ5}ÆÓÒ}È«œìO#é§ý5ìv]Š‚R¼ÏEûçchb8Ñj¸?ßqvlYÝ4=Û½O—‹6 ¦sʸ6€ŸáÃH²Ùú³ò3Éxî}…C×¹~¤¬Ÿ­ô§+²ÝÆöÆÚÓd*¶“j” 3ã+–âÇF|UéŠÊ1Mr9É…ÐwÖ¬ôßPöë#`ŸLôÓcÔneÞkfýæÍEÙ™®Ø`}ü:²§DÎÙ KU˜Ó+󷑨ð*Åu;¬Ñr-/Ñ×O£,:>=E&ùúpãí“°hdô§v†Ôexß’ÌØc“ÌOŽÐGéù: 5§ƒ¡²«F{±Œ 4¾jûCd×ÚÉÒJ±ÊíùÀ“ËgᦦqÅ –~P‹à¶-£ ej`rÌ*Ÿ­ÎÐÛ•Ô íœŠgËÛ·NƒEÑq–‹‹Ñ’å`lhÚ?LnK#šv뛓9´«„…„eÈ~¸ ¸ÛïúÙ1zè§?|MmF²ÏÀ¸ÇOïRÖ¹­5ãû1ªm=é2Ùi*˜]çÆ¥Xè¾mªÏÓ&6ÞÖMæ’T‘ÄËúŽ´Ìû’‡ø‡5Áé/¾‚}’jŽÑ„ ©+šG-º‚0¹l¼îX°Ùõ1¿ÝL¨Ÿœ^Ù?>U ÉÚ(Vüp‹ÔqPeZ?w ]íÆ°>£ Í¬–"+@ïûPV}>(…u¾uV”äƒê“üYFæ¯ûcf–Ÿ>…©Ì›¿gH®Â³3ç2•S®¾H†€”ÏPõÔ•½`œb|µÙ ž™Dò2<ü>º–5µï-[°ÐدfxVNGæ(ûÙ¿è÷óYM Æ0ðÅþd_*~ ïPi©–8lûjÿÐGáË?«iGÈ/9³»j»HgÙô­>ÖA-s°ÈdÊÞ¼ÞAY;àð*D›UÞ×{÷3 ÖWa_¡óy/Àðfh‘-É•Àj(ó÷UÝÖúfü€µóz×»’y¶æ¯PnÕ|¸aà¬FOñCþÜÊú+J¾oP¼òû?UØÐ¶/Rddalpha/R/0000755000176200001440000000000013162365543012060 5ustar liggesusersddalpha/R/lda.r0000644000176200001440000000053212560653366013007 0ustar liggesuserslda.train <- function(data){ new.frm <- data.frame(data) z <- lda(formula=as.formula(paste("X", ncol(data), " ~ .", sep="")), data = new.frm, tol = sqrt(.Machine$double.eps))#, prior = rep(1, dimension)/dimension) return (z) } lda.classify <- function(objects, lda){ z <- predict(lda, data.frame(objects))$class return (z) } ddalpha/R/depth.halfspace.r0000644000176200001440000001437212745655010015300 0ustar liggesusers################################################################################ # File: depth.halfspace.r # Created by: Pavlo Mozharovskyi # First published: 28.02.2013 # Last revised: 13.11.2015 # # Computation of the Tukey data depth. ################################################################################ .parse_HSD_pars <- function(exact, method){ if(missing(exact) && missing(method)) return(0) if(!missing(exact)){ if(exact == F){ if (missing(method)) return(0) else if (method != 0 && method != "Sunif.1D") stop("Wrong combination of 'exact' and 'method' parameters.") } else{ if (missing(method)) return(1) # default exact else if (!(method %in% 1:3 || method %in% c("recursive","plane","line"))) stop("Wrong combination of 'exact' and 'method' parameters.") } } if (!(method %in% 0:3 || method %in% c("Sunif.1D","recursive","plane","line"))) stop("Wrong parameter 'method'.") if (is.character(method)) method = switch (method, random = 0, recursive = 1, plane = 2, line = 3) return(method) } depth.halfspace <- function(x, data, exact, method, num.directions = 1000, seed = 0){ if (!is.matrix(x) && is.vector(x)){ x <- matrix(x, nrow=1) } if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.numeric(x)){ stop("Argument \"x\" should be numeric") } if (ncol(x) != ncol(data)){ stop("Dimensions of the arguments \"x\" and \"data\" should coincide") } if (ncol(data) + 1 > nrow(data)){ #? stop("To few data points") } points <- as.vector(t(data)) objects <- as.vector(t(x)) method = .parse_HSD_pars(exact, method) if (method == 0) if (!is.numeric(num.directions) || is.na(num.directions) || length(num.directions) != 1 || !.is.wholenumber(num.directions) || !(num.directions > 1 && num.directions < 10000000)){ numDirections <- 1000 warning("Argument \"num.directions\" not specified correctly. 1000 is used as a default value") }else{ numDirections <- num.directions } if (method == 0){ c <- as.vector(nrow(data)) k <- numDirections ds <- .C("HDepth", as.double(points), as.double(objects), as.integer(nrow(x)), as.integer(ncol(data)), as.integer(c), as.integer(1), dirs=double(k*ncol(data)), prjs=double(k*nrow(data)), as.integer(k), as.integer(1), # use the same directions and projections as.integer(seed), depths=double(nrow(x)))$depths } else if (method %in% 1:3){ ds <- .C("HDepthEx", as.double(points), as.double(objects), as.integer(nrow(data)), as.integer(nrow(x)), as.integer(ncol(data)), as.integer(method), depths=double(nrow(x)))$depths } else stop("wrong choise of the algorithm, method = ", method) return (ds) } depth.space.halfspace <- function(data, cardinalities, exact, method, num.directions = 1000, seed = 0){ if (seed != 0) set.seed(seed) if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.vector(cardinalities, mode = "numeric") || is.na(min(cardinalities)) || sum(.is.wholenumber(cardinalities)) != length(cardinalities) || min(cardinalities) <= 0 || sum(cardinalities) != nrow(data)){ stop("Argument \"cardinalities\" should be a vector of cardinalities of the classes in \"data\" ") } if (sum(cardinalities < ncol(data) + 1) != 0){ stop("Not in all classes sufficiently enough objetcs") } if (!is.numeric(num.directions) || is.na(num.directions) || length(num.directions) != 1 || !.is.wholenumber(num.directions) || !(num.directions > 1 && num.directions < 10000000)){ numDirections <- 1000 warning("Argument \"num.directions\" not specified correctly. 1000 is used as a default value") }else{ numDirections <- num.directions } x <- as.vector(t(data)) c <- as.vector(cardinalities) method = .parse_HSD_pars(exact, method) if (method == 0) if (!is.numeric(num.directions) || is.na(num.directions) || length(num.directions) != 1 || !.is.wholenumber(num.directions) || !(num.directions > 1 && num.directions < 10000000)){ numDirections <- 1000 warning("Argument \"num.directions\" not specified correctly. 1000 is used as a default value") }else{ numDirections <- num.directions } if (method == 0){ k <- numDirections rez <- .C("HDSpace", as.double(x), as.integer(ncol(data)), as.integer(c), as.integer(length(cardinalities)), as.integer(k), as.integer(1), as.integer(seed), dspc=double(nrow(data)*length(cardinalities)), dirs=double(k*ncol(data)), prjs=double(k*nrow(data))) depth.space <- matrix(rez$dspc, nrow=nrow(data), ncol=length(cardinalities), byrow=TRUE) }else if (method %in% 1:3){ ds <- .C("HDepthSpaceEx", as.double(x), as.double(x), as.integer(c), as.integer(length(cardinalities)), as.integer(nrow(data)), as.integer(ncol(data)), as.integer(method), depths=double(nrow(data)*length(cardinalities)))$depths depth.space <- matrix(ds, nrow=nrow(data), ncol=length(cardinalities), byrow=F) } else stop("wrong choise of the algorithm, method = ", method) return (depth.space) } ddalpha/R/depthf.r0000644000176200001440000000277313162365543013526 0ustar liggesusers.depthf <- function(fname, funcargs, ...){ f <- try(match.fun(fname), silent = T) if (is.function(f)){ args = list(...) fcnArgs <- names(formals(f)) fcnArgs <- unlist(fcnArgs, use.names=FALSE) keep <- intersect(names(args), fcnArgs) unused <- setdiff(names(args), fcnArgs) args <- args[keep] args <- c(args, funcargs) res <- do.call(fname, args=args) if(length(unused)>0) warning("Unused by '", fname, "' arguments: ", paste(unused, collapse = ', ')) #res <- f(x, data, ...) return(res) } else { warning("There is no depth function ", fname) } } depthf. <- function(datafA, datafB, notion = c("ABD", "BD", "fd1", "fd2", "hM", "hM2", "HR", "RP1", "RP2"), ...){ if(is.null(notion)) stop("Parameter 'notion' must be set") t <- notion try(t <- match.arg(notion), silent = T) fname = paste0("depthf.", t) funcargs = list(datafA = datafA, datafB = datafB) return(.depthf(fname, funcargs, ...)) } #depthf.space. <- function(dataf, cardinalities, notion = c("ABD", "BD", "fd1", "fd2", "hM", "hM2", "HR", "RP1", "RP2"), ...){ # # if(is.null(notion)) # stop("Parameter 'notion' must be set") # t <- notion # try(t <- match.arg(notion), silent = T) # # # try to find a depth # fname = paste0("depth.space.", t) # funcargs = list(cardinalities = cardinalities, data = data) # return(.depth(fname, funcargs, ...)) #} # d = depth(data$train, data$train, exact = T) ddalpha/R/ddalpha.classify.r0000644000176200001440000001566113160553415015460 0ustar liggesusers################################################################################ # File: ddalpha.classify.r # Created by: Pavlo Mozharovskyi # First published: 28.02.2013 # Last revised: 15.05.2013 # # Contains the classification function of the DDalpha-classifier. # # For a description of the algorithm, see: # Lange, T., Mosler, K. and Mozharovskyi, P. (2012). Fast nonparametric # classification based on data depth. Statistical Papers. # Mozharovskyi, P., Mosler, K. and Lange, T. (2013). Classifying real-world # data with the DDalpha-procedure. Mimeo. ################################################################################ ddalpha.classify <- function(ddalpha, objects, subset, outsider.method = NULL, use.convex = NULL){ # Checks if (!is.matrix(objects) && !is.data.frame(objects)){ objects <- matrix(objects, nrow=1) } if (!(is.matrix(objects) && is.numeric(objects) || is.data.frame(objects) && prod(sapply(objects, is.numeric)))){ warning("Argument \"objects\" has unacceptable format. Classification can not be performed!!!") return (NULL) } # convert using formula if(!is.null(ddalpha$classif.formula)){ objects = model.frame(ddalpha$classif.formula, data = objects) } if(!missing(subset)) objects = objects[subset,] if (ncol(objects) != ddalpha$dimension){ warning("Dimension of the objects to be classified does not correspond to the dimension of the trained classifier. Classification can not be performed!!!") return (NULL) } if (ddalpha$methodSeparator == "Dknn") return(dknn.classify.trained(objects, ddalpha)) # if (!is.character(outsider.method) # || length(outsider.method) != 1){ # warning("Argument \"outsidet.method\" not specified correctly. Outsiders will be ignored!!!") # outsider.method <- NULL # } if (is.null(use.convex)){ use.convex <- ddalpha$useConvex } depths <- matrix(nrow=0, ncol=ddalpha$numPatterns) #? freePoints <- matrix(nrow=0, ncol=ncol(objects)) #? if (is.null(ddalpha$methodDepth)){ #use only outsiders treatment classifiableIndices <- c() resultsDepths <- list() freePoints <- objects } else { # Define points that can be classified by the DD-Alpha and the outsiders if (use.convex){ points <- ddalpha$patterns[[1]]$points cardinalities <- c(ddalpha$patterns[[1]]$cardinality) for (i in 2:ddalpha$numPatterns){ points <- rbind(points, ddalpha$patterns[[i]]$points) cardinalities <- c(cardinalities, ddalpha$patterns[[i]]$cardinality) } classifiable <- .are_classifiable(objects, points, cardinalities) classifiableIndices <- which(classifiable == 1) if (length(classifiableIndices) == 0){ depths <- matrix(nrow=0, ncol=ddalpha$numPatterns) freePoints <- objects }else{ depths <- .ddalpha.count.depths(ddalpha, objects[classifiableIndices,]) freePoints <- matrix(objects[-classifiableIndices,,drop=F], nrow=nrow(objects)-length(classifiableIndices)) } }else{ ifelse(ddalpha$methodDepth == "ddplot", depths <- objects, depths <- .ddalpha.count.depths(ddalpha, objects) ) classifiableIndices <- c() for (i in 1:nrow(depths)){ if (sum(depths[i,]) > 0){ classifiableIndices <- c(classifiableIndices, i) } } if (length(classifiableIndices) == 0){ depths <- matrix(nrow=0, ncol=ddalpha$numPatterns) freePoints <- objects }else{ depths <- suppressWarnings( as.matrix(depths[classifiableIndices,,drop=F], nrow=length(classifiableIndices), ncol=ddalpha$numPatterns)) freePoints <- # objects[-classifiableIndices,,drop=F]# suppressWarnings( as.matrix(objects[-classifiableIndices,,drop=F], nrow=nrow(objects)-length(classifiableIndices), ncol=ncol(objects))) } } # Classify with the pure DD classifiers resultsDepths <- list() if (nrow(depths) > 0){ fname = paste0(".", ddalpha$methodSeparator, "_classify") classify <- .getFunction(fname) resultsDepths1 <- list() if (ddalpha$methodSeparatorBinary){ #### Binary classifiers votes <- matrix(rep(0, nrow(depths)*ddalpha$numPatterns), nrow=nrow(depths), ncol=ddalpha$numPatterns) for (i in 1:ddalpha$numClassifiers){ xAxis <- ddalpha$classifiers[[i]]$index1 yAxis <- ddalpha$classifiers[[i]]$index2 result <- classify(ddalpha, ddalpha$classifiers[[i]], depths) for (obj in 1:nrow(depths)){ if (result[obj] > 0){ votes[obj,xAxis] <- votes[obj,xAxis] + 1 }else{ votes[obj,yAxis] <- votes[obj,yAxis] + 1 } } } for (i in 1:nrow(depths)){ resultsDepths[[i]] <- ddalpha$patterns[[which.max(votes[i,])]]$name } } else { #### Multiclass classifiers indexes <- classify(ddalpha, ddalpha$classifiers[[1]], depths) for (i in 1:nrow(depths)){ resultsDepths[[i]] <- ddalpha$patterns[[indexes[i]]]$name } } } } # end if(!is.null(ddalpha$methodDepth)) # Classify Outsiders resultsOutsiders <- as.list(rep("Ignored", nrow(freePoints))) freePoints if (is.null(outsider.method) && length(ddalpha$methodsOutsider) == 1) outsider.method = ddalpha$methodsOutsider[[1]]$name if (length(resultsOutsiders) > 0 && !is.null(outsider.method)){ for (i in 1:length(ddalpha$methodsOutsider)){ if (toupper(ddalpha$methodsOutsider[[i]]$name) == toupper(outsider.method)){ resultsOutsiders <- .ddalpha.classify.outsiders(freePoints, ddalpha, ddalpha$methodsOutsider[[i]]) break } } } # Merge classifiable and outsiders if (length(resultsOutsiders) == 0) results <- resultsDepths else if(length(resultsDepths) == 0) results <- resultsOutsiders else{ results <- list() counterDepths <- 1 counterOutsiders <- 1 for (i in 1:nrow(objects)){ if (i %in% classifiableIndices){ results[[i]] <- resultsDepths[[counterDepths]] counterDepths <- counterDepths + 1 }else{ results[[i]] <- resultsOutsiders[[counterOutsiders]] counterOutsiders <- counterOutsiders + 1 } } } if (length(results) == 1) return(results[[1]]) else return (results) } predict.ddalpha <- function(object, objects, subset, outsider.method = NULL, use.convex = NULL, ...){ return(ddalpha.classify(object, objects, subset, outsider.method, use.convex)) } ddalpha/R/dataf.growth.r0000644000176200001440000017214112776660136014647 0ustar liggesusersdataf.growth <- function() return(structure(list( name = "Berkeley Growth Study", args = "age", vals = "height", dataf = list(structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18 ), vals = structure(c(76.2, 80.4, 83.3, 85.7, 87.7, 96, 103.8, 110.7, 116.8, 122.2, 127.4, 130.6, 133.4, 135.9, 138.6, 142.4, 146.8, 150.3, 153.1, 155, 156.2, 157.1, 157.7, 158, 158.2, 158.4, 158.6, 158.7, 158.7, 158.8, 158.9), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.6, 78, 82, 86.9, 90, 94.9, 102.1, 109.2, 115.6, 122.7, 128.2, 131.1, 134.8, 138.2, 140.9, 143.4, 146.1, 149.4, 152.9, 156.4, 159.5, 161.6, 162.6, 163.6, 165, 165.3, 165.6, 165.9, 166.1, 166, 166 ), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(78.2, 81.8, 85.4, 87.9, 89.6, 97.1, 109.2, 116.2, 122.9, 128, 134.2, 138, 141.5, 145.2, 148.8, 152.3, 155.6, 158.2, 159.6, 160.1, 160.3, 160.8, 161.6, 161.8, 161.7, 161.8, 161.9, 161.9, 161.7, 161.9, 162.2), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(77.7, 80.5, 83.3, 87, 90.3, 98.6, 106.3, 113.9, 120.7, 125.7, 131, 134.1, 137.1, 140.2, 143, 145.7, 148.5, 151.5, 154.8, 158.4, 161.2, 163.5, 165.2, 166, 166.5, 166.9, 167.2, 167.4, 167.4, 167.6, 167.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76, 80, 83, 86, 89, 96, 103, 110, 117, 123, 131, 133, 136, 139, 141, 144, 147, 150, 153, 157, 161, 164, 166, 167, 168, 168, 169, 169, 170, 170, 170), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(73.5, 77, 81.5, 83.8, 85.5, 92.9, 99.6, 106.7, 113.3, 118.4, 124.2, 127.6, 130.6, 133.6, 136.4, 139.7, 143.7, 148, 152, 155.7, 158.9, 160.9, 162.2, 163.2, 163.8, 164, 164.2, 164.4, 164.4, 164.8, 164.9), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(67.4, 72.3, 75.9, 79.4, 82.2, 91.6, 99.5, 105.7, 112.5, 117.2, 122.8, 125.5, 128, 130.3, 132.5, 134.9, 137.4, 139.9, 142.1, 144.2, 146.4, 148.9, 152.2, 155.3, 157.9, 160.1, 161.6, 162.4, 163, 163.4, 164), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(80.5, 85.1, 89.7, 93.7, 97.3, 106.3, 114.4, 123.5, 130.6, 137.7, 144.4, 148.4, 152.5, 156.6, 161.5, 166.1, 170.2, 173.5, 176, 177.3, 178.3, 179.1, 180, 181, 181.6, 181.9, 182.3, 182.6, 182.8, 182.7, 183.2), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(77, 80.7, 83.4, 85.6, 88.9, 96.5, 104.2, 111.4, 118.2, 124.2, 129.6, 132, 135.2, 138.5, 141.5, 144.9, 148.9, 152.6, 156.2, 159.6, 161.4, 162.4, 163.1, 163.6, 164.3, 164.5, 164.4, 164.3, 164.1, 164, 163.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.7, 77.9, 81.3, 84.8, 87.6, 98.6, 107.8, 116.2, 124.6, 130.6, 136.2, 139.3, 142.3, 145.5, 148.7, 152.3, 156.6, 161, 164.7, 167.5, 169.1, 170.2, 171.3, 172.1, 172.6, 172.9, 173.1, 173.3, 173.6, 173.8, 174), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(69.3, 76.1, 80.7, 84.4, 87.1, 94.6, 103.4, 110, 116.6, 122.6, 128.1, 130.4, 133.2, 135.8, 138.2, 140.7, 142.7, 144.4, 146.2, 148.5, 151.3, 154.6, 158.3, 161.4, 163.5, 165, 166, 166.5, 166.7, 166.9, 167.1), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(72.4, 75.2, 77.8, 80.7, 83.6, 95.3, 102.4, 109.6, 116, 121.7, 127.7, 130.1, 133.1, 135.5, 137.5, 140, 143.1, 146.8, 150.7, 154.2, 157, 159, 160.5, 161.5, 162.1, 162.5, 162.7, 163, 163.4, 163.1, 163), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(67.3, 73.7, 76.2, 79, 81.4, 90.2, 96.8, 102.4, 108.7, 113.8, 118.8, 121.1, 123.2, 125.4, 127.7, 129.9, 131.6, 133.5, 135.6, 137.6, 139.5, 141.8, 145, 148.2, 150.8, 152.2, 153, 153.6, 154.1, 154.4, 154.6), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76.7, 80, 83.8, 86.8, 89.7, 96.2, 104.5, 111.5, 118.6, 125, 130.5, 133, 135.8, 138.6, 141.4, 144.2, 146.6, 148.8, 151.4, 154.6, 157.8, 161.2, 164.5, 166.6, 167.8, 168.6, 169.2, 169.8, 169.8, 170, 170.3), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(72.8, 78.2, 84.2, 87, 88.4, 94.4, 100.3, 106.6, 120.5, 127.3, 133.6, 136.4, 139.5, 142.5, 146, 150.2, 154.3, 158.6, 162.6, 164.7, 166, 167.1, 168.3, 168.7, 169.1, 169.5, 169.9, 170.1, 170.3, 170.3, 170.6), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(72, 74.9, 80, 82.8, 83.8, 92.3, 98.2, 105.2, 110.4, 115.6, 119.4, 121.9, 124.2, 126.3, 128.5, 131.2, 134.3, 137.3, 140.5, 143.6, 146.8, 149, 150.2, 151.4, 152.6, 153.4, 154.1, 154.9, 155.7, 156.2, 156.5), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(68.4, 75, 81.3, 85, 87.6, 94.6, 102.4, 109.2, 116.2, 122.7, 129.4, 132.4, 135.6, 139.4, 143.6, 147.9, 151.9, 155, 157, 158, 158.9, 159.4, 159.7, 159.9, 160.2, 160.2, 160.3, 160.4, 160.4, 160.3, 160.3), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76, 82.1, 87.5, 91.1, 94, 101.1, 108.8, 116.7, 124.7, 132.3, 138.2, 141.2, 144.1, 146.8, 150.2, 153.9, 157.3, 161, 164.5, 166.8, 168, 168.7, 169.3, 169.6, 169.8, 170.1, 170.3, 170.5, 170.6, 170.8, 170.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(73.7, 78.2, 79.9, 82, 86.4, 95.7, 101.9, 110, 117.6, 122.7, 128.7, 131.6, 134.6, 137.6, 141.6, 146.9, 152.1, 156.3, 159.4, 161, 162, 162.8, 163.6, 164.2, 164.6, 164.9, 165, 165.1, 165.1, 165.1, 165.2), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(73.7, 81.3, 83.8, 85.1, 88.9, 96.1, 106.1, 113, 119.1, 124.7, 130.7, 134, 137.2, 140.9, 144.2, 147.3, 150.2, 154.2, 158.4, 161.2, 163.9, 165.4, 166.8, 167.5, 168.2, 168.8, 169.5, 169.6, 169.6, 169.6, 169.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.4, 77.5, 81.5, 84.5, 86.7, 95, 103.6, 112, 119.6, 127.5, 133.2, 136.6, 139.8, 142.7, 146, 150.3, 154.4, 158.3, 162.4, 165.5, 167.9, 169.4, 170.1, 170.2, 170.6, 171.1, 171.5, 171.5, 171.5, 171.4, 171.2), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.9, 77.8, 81.2, 83.7, 86.4, 94.2, 98.6, 107.7, 114.8, 122.7, 128.3, 131, 134.2, 137.8, 141.4, 145.4, 149.7, 153.9, 157, 159.1, 160.4, 161.2, 161.8, 162.4, 163, 163.1, 163.1, 163.3, 163.6, 163.7, 163.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(72, 77.1, 80.6, 83.4, 85.9, 94, 100.3, 108, 114.9, 121.2, 127, 129.6, 132.1, 134.8, 137.8, 141.6, 145.8, 150.2, 153.8, 156.7, 158.8, 159.7, 160.5, 161.1, 161.5, 161.7, 162.1, 162.3, 162.4, 162.4, 162.4), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(72.6, 76.8, 80.4, 82.9, 85.1, 91.4, 96.8, 105.7, 114.8, 118.4, 122.6, 126.1, 129, 131.3, 133.9, 136.7, 140.1, 143.8, 147.3, 150.4, 153, 154.5, 155.6, 156.1, 156.4, 156.6, 156.8, 156.9, 157, 156.9, 157.1), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(75.2, 80.2, 83.8, 86.4, 88.6, 97.5, 103.6, 110.7, 117.6, 126.5, 132.6, 136.1, 139.4, 142.4, 145.6, 148.8, 152.2, 155.7, 159, 162.1, 166, 170.3, 174.3, 177.2, 178.9, 179.7, 180.4, 180.4, 180.2, 180.5, 181.1), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(70.9, 74.3, 76.8, 80, 83, 91.4, 96.5, 102.4, 108.7, 114.6, 120.4, 123, 125.6, 127.9, 130.1, 132.8, 135.5, 138.9, 142.9, 146.9, 150, 152.2, 153.6, 154.9, 155.9, 156.6, 157.1, 157.5, 157.7, 158, 158.4), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.6, 79.4, 82, 84.3, 88.9, 98, 105, 113.5, 121, 126.2, 131.4, 134.2, 137.1, 139.5, 141.9, 145, 148.1, 151.8, 155.6, 158.3, 160.3, 161.8, 162.8, 163.5, 164, 164.3, 164.8, 165.2, 165.4, 165.5, 165.6), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(71.1, 77.3, 81.7, 85.5, 89.7, 98.2, 106, 112.6, 118.6, 123.7, 128.6, 131.1, 133.6, 135.8, 138, 141.8, 145.8, 150.5, 155.2, 158.7, 161, 162.6, 163.9, 164.7, 165.5, 165.9, 166.3, 166.5, 166.6, 166.7, 166.7), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(71, 72.3, 74.9, 78.4, 81.3, 88.1, 94.7, 100.1, 105.7, 112.5, 117, 119.2, 121.4, 124.5, 126.8, 129, 131.7, 134.4, 137, 140.3, 143.9, 147, 149.6, 151.8, 153.2, 154.3, 155.1, 155.6, 156, 156.1, 156.5 ), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74, 77.6, 82.3, 86.2, 88.7, 95.3, 103.6, 109.7, 116.6, 122.2, 127.2, 130.4, 133.6, 135.7, 137.8, 140.5, 143.5, 147.5, 151.7, 155.7, 159.2, 162, 163.8, 164.9, 165.8, 166.8, 167.5, 167.9, 168.2, 168.2, 168.1), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(78.7, 82, 84.4, 86.4, 88.4, 96.8, 104.7, 111.3, 118.8, 124.3, 129, 131.6, 134.1, 136.3, 139, 141.9, 145.1, 148.3, 151.3, 154.6, 157.7, 160.3, 161.4, 162.4, 163.4, 164, 164.3, 164.7, 165.2, 165.3, 165.3), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(69, 72.9, 76.7, 80.8, 85.1, 94.6, 104.1, 112.5, 120.7, 126.2, 133.3, 136.4, 139.4, 142.7, 146.1, 149.9, 154.1, 157.8, 160.4, 161.9, 162.6, 162.9, 163, 163.1, 163, 163.1, 163.1, 163.4, 163.7, 163.8, 163.7), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(72.7, 78.3, 82.4, 87.2, 91.4, 98.3, 105.2, 113.3, 120.1, 126.2, 131.5, 134.9, 138.1, 140, 142.2, 145.2, 148.3, 151, 153.9, 156.9, 160.3, 163.9, 166.9, 169.1, 170.4, 171.3, 172, 172.7, 172.9, 173.1, 173.7), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(72.6, 77.4, 81.8, 85.2, 87.6, 95.5, 103.7, 109.7, 115.8, 121.6, 127.6, 130.4, 133.2, 135.8, 138.4, 141.8, 145.8, 150.3, 154.3, 157, 158.7, 159.9, 160.9, 161.7, 162.4, 163, 163.3, 163.4, 163.5, 163.6, 163.9), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(75.3, 79.7, 82, 84.2, 86.1, 96, 103.5, 111.4, 119.1, 126, 132.7, 135.6, 138.4, 141, 143.8, 146.9, 150.6, 154.4, 157.9, 161.1, 163.6, 165, 166.2, 167.3, 167.9, 168.1, 168.3, 168.5, 168.6, 168.8, 169.2), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(73.1, 77.5, 80.4, 82.8, 85.9, 94.6, 102.4, 107.7, 114.6, 121.7, 126.8, 129.8, 132.8, 135.3, 137.6, 140.3, 143.7, 147.3, 150.6, 154.1, 157.5, 160.1, 162.2, 163.5, 164.2, 164.6, 164.8, 165.1, 165.4, 165.7, 166), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(68.9, 72.7, 76.6, 79.6, 82.2, 91, 98.4, 106.2, 112.3, 118.1, 123.6, 126.7, 129.8, 132.3, 135, 137.4, 139.9, 142.4, 145, 148.1, 151.8, 155.5, 158.3, 160.1, 161.3, 162.3, 163, 163.3, 163.6, 163.8, 164.2), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(75.9, 79.4, 82.1, 85.7, 88.2, 98, 107.4, 115.3, 124, 130.6, 137.6, 141.2, 144.8, 148, 151.8, 155.3, 158.7, 162.2, 165.5, 168.3, 170.7, 172.3, 173.4, 174.5, 175.1, 175.2, 175.2, 175.4, 175.8, 176.1, 176), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(73, 77.3, 81, 85.1, 87.5, 97.3, 105.7, 112.7, 119.3, 124.7, 131.9, 135.4, 138.9, 142, 145, 148.2, 152, 156.5, 160.5, 163.6, 165.9, 167.6, 168.8, 169.5, 169.9, 170.2, 170.5, 170.5, 170.5, 170.7, 170.9), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(80, 83.6, 85.1, 86.4, 88.6, 98, 105.7, 112.5, 119.6, 126.5, 133.6, 137, 140.3, 142.8, 146, 149.9, 154.3, 158.3, 161.2, 163.3, 165.1, 166.6, 167.4, 167.8, 168.2, 168.6, 168.8, 168.9, 168.9, 169, 169.2), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(72.4, 75.8, 79, 83.1, 86.4, 94.5, 101.5, 108.7, 114.8, 120.4, 126.6, 130.1, 133.6, 136.3, 139.5, 143, 146.7, 150.5, 153.7, 156.1, 158, 159.7, 160.4, 160.8, 161.4, 162.1, 162.6, 162.6, 162.6, 162.8, 163), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(69, 72.6, 76.2, 78.5, 80.9, 89.3, 94.7, 100.3, 106.9, 112.8, 117.8, 120.6, 123.5, 126, 128.4, 131.1, 134.2, 137.7, 141.3, 145, 147.7, 149.8, 151.5, 152.4, 152.9, 153.2, 153.6, 154.1, 154.4, 154.5, 154.5), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76, 80, 84.2, 87.4, 90, 101.2, 109.5, 116.3, 122.1, 128.8, 133.8, 136.9, 139.9, 143.6, 147, 151, 155.8, 160.7, 164.5, 166.9, 168.5, 169.4, 170.1, 170.8, 171.5, 172, 172.1, 172.2, 172.3, 172.2, 172.5), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(78.4, 82.6, 85.1, 86.4, 89.7, 96.6, 105, 112.3, 119.6, 124.7, 131.2, 133.6, 135.8, 138.8, 141.2, 144.1, 147.4, 150.4, 153.8, 157.8, 161.1, 163.5, 165.2, 166.1, 166.6, 166.8, 167.1, 167.2, 167.3, 167.3, 167.2), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.8, 78, 81.6, 84.2, 86.4, 94, 101.8, 110, 116.8, 121.9, 126.8, 129.3, 131.9, 134.9, 137.8, 141.3, 145, 149.5, 153.8, 157, 158.9, 160.3, 161.8, 162.4, 162.8, 163.2, 163.6, 163.9, 164.3, 164.2, 164), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(71.3, 74.4, 77.4, 80, 82.6, 91.6, 100.6, 106.2, 114.3, 120.4, 126.7, 129.9, 133.1, 136, 138.8, 142.9, 146.8, 150.7, 154.6, 157.2, 158.6, 159.7, 160.5, 160.8, 161.1, 161.3, 161.6, 161.9, 162, 162.1, 162.1), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(73, 75, 77.6, 81.7, 86.4, 92.9, 99.3, 105.6, 113.3, 118.6, 125.6, 128.2, 130.9, 134.4, 137.9, 141.6, 145.4, 149.4, 153.3, 156.2, 157.4, 158.1, 158.9, 159.6, 159.9, 160.2, 161, 161.5, 161.9, 161.8, 161.6), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(71.1, 73.7, 76.2, 79.4, 81.8, 91.4, 95.3, 102.4, 110, 116.1, 120.9, 123.6, 126.3, 130.4, 134.4, 137.7, 141.3, 144.4, 147, 149.1, 150.3, 151, 151.4, 151.7, 152, 152.1, 152.3, 152.6, 153.2, 153.5, 153.6), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.6, 78, 81, 83.6, 86.2, 96.5, 104.1, 110.7, 118.6, 125.2, 130.9, 133.4, 135.9, 138.8, 141.7, 144.8, 148.1, 151.8, 155.8, 160.4, 164.8, 168.6, 171.7, 173.8, 175, 175.7, 176.1, 176.5, 176.9, 177.2, 177.5), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.9, 78.1, 80.6, 83.4, 86, 96.5, 104.6, 111.8, 117.9, 124.1, 130.3, 132.7, 135, 138.5, 141.8, 145.1, 148.1, 150.8, 153.9, 157.5, 161.3, 164.5, 166, 166.7, 167.4, 167.9, 168.1, 168.5, 168.9, 169.4, 169.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(77.6, 81.1, 84, 87.2, 91.4, 98, 105.6, 112.2, 118.6, 124.2, 130.3, 132.9, 135.5, 138.5, 141.4, 144.4, 147.6, 151.2, 154.9, 159, 163.2, 166, 168.3, 169.8, 170.7, 171.5, 172.1, 172.5, 172.7, 173.1, 173.5), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(68.6, 73.6, 78.6, 83.6, 88.9, 96.8, 104.1, 111.8, 118.6, 124.7, 129.2, 132.8, 136.5, 138.1, 139.4, 142.5, 145.4, 148.6, 152.2, 155.8, 158.7, 160.8, 162.2, 163.1, 163.7, 164.3, 164.8, 165.4, 166, 166.3, 166.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(79.9, 82.6, 84.8, 88.6, 94, 99.6, 108.2, 116.2, 124, 131.1, 136.8, 139.4, 142, 145, 148.1, 151.3, 154.8, 158.5, 161.6, 163.8, 165.3, 166.2, 166.4, 166.6, 167, 167.5, 167.7, 168, 168.3, 168.4, 168.6 ), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76.1, 78.4, 82.3, 86, 89.2, 98.2, 106.7, 114.4, 121.9, 129.5, 135.2, 138.1, 140.8, 144.8, 148, 151.3, 154.7, 158.4, 161.7, 164.2, 165.6, 166.4, 167, 167.7, 168.1, 168.4, 168.5, 168.5, 168.6, 168.9, 169.2), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(81.3, 84.2, 86.4, 88.9, 91.4, 101.1, 109.5, 115.8, 121.9, 130, 138.2, 141.1, 144.3, 147.5, 150.5, 153.4, 156.2, 159.7, 163.8, 168.8, 174.9, 181.2, 186.3, 189.6, 191.3, 192.1, 192.8, 193.2, 193.8, 194.3, 195.1), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76.2, 80.4, 83.2, 85.4, 87.6, 97, 104.6, 112.3, 118.9, 125, 130.1, 133, 135.4, 137.5, 139.7, 142.2, 144.2, 146.2, 148.1, 149.8, 151.6, 153.8, 156.3, 159.2, 163.3, 167.7, 171.5, 174.3, 176.1, 177.4, 178.7), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76.8, 79.8, 82.6, 84.7, 86.7, 94.2, 100.4, 107.1, 112.3, 118.6, 124, 126.5, 128.9, 131.2, 133.4, 135.8, 138.4, 141, 143.6, 146.8, 150.8, 155.1, 159.5, 163.3, 166.8, 167.8, 168.8, 169.8, 170.9, 171.2, 171.5), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.1, 78.4, 82.6, 85.4, 88.1, 98.6, 104.4, 111, 116.3, 123.2, 129.9, 133, 136, 138.7, 141.4, 144, 146.4, 148.8, 151.4, 154.5, 157.7, 162.2, 167.4, 172.5, 176.3, 178.5, 179.8, 180.7, 181.4, 181.6, 181.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.2, 76.3, 78.3, 80.3, 82.2, 89.4, 96.9, 104.1, 110.7, 115.8, 121.7, 125.2, 128.5, 131.2, 134.2, 137.4, 140.5, 143.3, 145.9, 148.7, 152, 155.8, 160.4, 165.1, 168.5, 170.4, 171.6, 172.4, 172.5, 172.5, 172.5), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76.8, 79.1, 81.1, 84.4, 87.4, 94, 102.4, 109.2, 116.1, 121.9, 127.8, 129.8, 132.4, 135, 137.3, 139.7, 142, 144.1, 146.9, 150, 153.4, 157.3, 161.6, 165.2, 168.8, 170.1, 171.5, 172.1, 172.6, 173.2, 173.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(72.4, 76, 79.4, 82, 84.2, 93.2, 101.6, 109, 117.3, 122.9, 128.3, 130.9, 133.7, 136, 138, 139.9, 141.6, 143.4, 145.5, 147.8, 150.3, 152.8, 155.8, 159.2, 163.1, 166.5, 168.9, 170.2, 171.1, 171.8, 172.6), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(73.8, 78.7, 83, 85.8, 88.4, 97.3, 106.7, 112.8, 119.1, 125.7, 132.3, 135.4, 138.3, 141.3, 144.7, 147.9, 151.2, 154.5, 158.2, 162.3, 166.5, 171.1, 175.2, 178.4, 180.8, 182.2, 183.2, 184, 184.7, 185, 185.2), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(75.4, 81, 84.9, 87.9, 90, 97.3, 102.8, 108.2, 113.5, 120.2, 125.7, 127.9, 130.3, 133.2, 135.9, 137.9, 139.6, 141.5, 143.7, 146, 148.6, 151.5, 154.3, 157.8, 161.8, 165.6, 168.7, 171, 171.6, 172.3, 172.9), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(78.8, 83.3, 87, 89.6, 91.4, 100.4, 111, 118.5, 125.8, 131.1, 138.4, 141.5, 144.5, 147.5, 150.5, 153.6, 156.8, 160.5, 164.6, 169.2, 174.3, 178.8, 181.9, 184.2, 185.6, 186.6, 187.1, 187.4, 187.8, 188.2, 188.4), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76.9, 79.9, 84.1, 88.5, 90.6, 96.6, 104.8, 112, 118.6, 124.8, 130.3, 133.1, 135.8, 138.7, 141.7, 144.2, 146.6, 148.7, 150.5, 152.4, 154, 158.9, 161.7, 165.1, 169.6, 174, 176.6, 178.6, 179.6, 180.2, 181.6), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(81.6, 83.7, 86.3, 88.8, 92.2, 99.3, 105.8, 112.6, 119.6, 126.9, 133.8, 136.4, 139.9, 143.2, 146, 149, 151.8, 154.8, 158, 161.5, 165.3, 169.6, 174.3, 178.8, 182.1, 184.6, 186.1, 187.5, 188, 188.6, 189), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(78, 81.8, 85, 86.4, 87.1, 96.2, 104, 111, 117.3, 124.1, 130, 133.6, 136.8, 139.6, 142.2, 144.8, 147.4, 149.8, 151.9, 154.1, 158.2, 163.3, 168.1, 173, 175.2, 177.4, 179.2, 180.6, 181.4, 181.9, 182.4), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76.4, 79.4, 83.4, 87.6, 91.4, 101.2, 106.4, 113.3, 120.3, 128.8, 135, 137.8, 140.6, 143.4, 146.5, 149.6, 152.2, 155.3, 159.2, 163.9, 168.6, 172.8, 176.6, 179.4, 181.4, 182.6, 183.7, 184.4, 185, 185.7, 185.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76.4, 81.2, 86, 89.2, 92.2, 101.3, 110.3, 117.3, 122.5, 129.5, 134.8, 137.4, 140, 142.5, 145, 147.8, 150.5, 153.4, 157.4, 162, 166.6, 170.7, 174, 176.1, 177.3, 177.9, 178.2, 178.3, 178.5, 178.5, 178.7), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76.2, 79.2, 82.3, 85.4, 88.4, 101, 107.4, 114.8, 120.7, 128, 134.5, 137.4, 139.9, 142.5, 145.7, 148.7, 151.3, 154.3, 158.1, 162.8, 167.5, 171.5, 175.1, 178, 179.8, 181, 181.9, 182.7, 183.3, 183.4, 183.4), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(75, 78.4, 82, 84, 85.9, 95.6, 102.1, 109.2, 117.5, 124.8, 131.5, 134.9, 137.8, 140.7, 143.8, 146.8, 149.5, 152.4, 155.3, 158.9, 163.6, 168.6, 173, 176.3, 178.5, 180, 181, 181.8, 182.2, 182.6, 183), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(79.7, 81.3, 83.3, 86.5, 88.9, 99.4, 104.1, 112.5, 119, 128, 133.6, 136.6, 139.5, 141.9, 144.8, 148.5, 152.3, 156.3, 161.2, 165.9, 169.5, 172.1, 174.2, 175.6, 176.4, 177, 177.3, 177.6, 177.3, 177, 177), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(70, 74.5, 78.7, 82.3, 85.1, 93.6, 101.9, 108.8, 115.3, 122, 127.9, 130.9, 134.1, 136.8, 139.3, 141.6, 144, 146.1, 148.6, 151.7, 155, 158.9, 163.3, 167.4, 170.4, 171.9, 173, 173.7, 174.2, 174.6, 175), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(73.8, 76.7, 79.3, 82.8, 86.4, 95.3, 102.2, 109.5, 116.1, 121.7, 128.3, 131.4, 134.3, 137, 140, 143, 145.6, 148.7, 152.3, 157, 162, 166.4, 169.8, 172.1, 173.7, 174.7, 175.5, 176.1, 176.4, 176.5, 176.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(75.3, 79.1, 82.6, 85.1, 87.2, 95.6, 102.6, 109.7, 116.8, 121.7, 127.1, 129.8, 132.5, 134.7, 136.7, 138.9, 141.5, 143.6, 145.8, 148, 150, 152.5, 155.4, 158.9, 163, 166.8, 169.8, 172, 173.5, 174.9, 176.4), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76.6, 79, 82.6, 86.6, 89, 95.3, 102.1, 108.5, 111.5, 119.4, 126.1, 128.8, 131.4, 134.3, 136.8, 139.7, 142.2, 144.1, 146.6, 150, 154, 158, 162.1, 166.5, 169.2, 170.7, 171.9, 172.8, 173.4, 173.8, 174), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(73, 76, 78.7, 82.2, 84.6, 94.7, 104.9, 109, 115.3, 121.2, 126.5, 130.4, 134.3, 136.6, 139.1, 141.6, 143.8, 146.3, 149, 151.6, 154.2, 157.2, 160.6, 164.3, 168.6, 173, 176.2, 178, 179.1, 180.2, 181), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(75.1, 78.6, 81.9, 84, 85.6, 92.8, 100.6, 106.7, 112.5, 118.6, 123.7, 126.4, 129.1, 131.8, 134.5, 136.8, 139, 141.8, 145.3, 149.7, 154.4, 158.8, 162.2, 164.8, 167, 168, 168.8, 169.4, 169.7, 169.8, 170.1), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(77.4, 81.6, 84.8, 88, 89.6, 96.5, 103.3, 108.7, 113.8, 120.1, 125.8, 128.9, 132.1, 134.3, 136.9, 139.2, 141.6, 144.2, 146.7, 149.6, 153.3, 157.7, 162.3, 166.1, 168.6, 170.5, 172.2, 173.1, 173.8, 174.4, 175.2), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(73.2, 76.2, 79, 81.8, 84.8, 95.3, 101.6, 109.3, 116, 122.7, 129.9, 133.1, 136.2, 139.4, 142.6, 144.7, 147.9, 150.8, 153.5, 156.1, 158.7, 161.1, 163.7, 166.8, 170.3, 174.3, 178.3, 181, 183.1, 184.6, 185.1), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(78, 82.2, 86.1, 88.9, 91.4, 101.3, 108, 114.9, 121.5, 128.3, 134, 137, 140.1, 142.5, 145, 147.4, 149.5, 151.4, 153.2, 155.2, 157.1, 159.2, 161.4, 163.6, 166.6, 170.9, 175, 178.1, 180.5, 182, 182.7 ), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76.5, 80, 82.8, 85.4, 88.4, 95.2, 102, 107.5, 114, 119.4, 124.2, 126.6, 129.1, 131.6, 134, 136.5, 138.8, 141, 143.3, 145.7, 148.1, 150.7, 154.4, 158.9, 162.7, 165.2, 166.9, 168, 168.7, 169.1, 169.4), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(78, 80.6, 85.4, 90.2, 93.5, 103.6, 111, 117.9, 126.7, 133.6, 140.3, 143.9, 147.4, 150.4, 153.4, 156.1, 159.1, 162.8, 167.1, 171.9, 177.1, 181.8, 185.7, 188.8, 190.8, 192.2, 193, 193.6, 194, 194.1, 194.3), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.9, 78.7, 81, 84.9, 87.7, 93.2, 104.2, 110, 116, 123.8, 130.6, 133.3, 136, 138.9, 141.9, 144.1, 146.2, 148.1, 150.1, 152.5, 155.1, 158.3, 162.4, 167.3, 171.6, 174.9, 177.4, 179, 180, 180.7, 181.1), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(74.2, 78.3, 82.3, 86, 89.1, 97.1, 104.9, 112, 118.6, 124.7, 131.8, 135, 138.2, 141.2, 143.9, 146.4, 149.5, 153.8, 158.4, 163.2, 168, 172.4, 175.7, 177.6, 178.7, 179.8, 180.4, 180.8, 180.9, 180.8, 181.3), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(78.7, 83.3, 87, 90.4, 93.1, 103, 109.7, 118, 124.6, 132.3, 138.4, 141.6, 144.8, 147.4, 150.5, 153.4, 156.1, 159.3, 163.7, 168.8, 174.2, 179, 183.1, 186, 188, 189.6, 190.7, 191.3, 191.7, 192.2, 192.8 ), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(78, 82.6, 85.8, 88.4, 90.9, 99.1, 105.8, 112.2, 117.6, 123.4, 129.6, 132.3, 135, 137.3, 139.7, 142, 144.4, 146.5, 148.6, 150.7, 153.1, 156, 159.6, 163.5, 167.8, 170.3, 172.8, 174.5, 175.5, 176, 176.4), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76, 81.2, 84.6, 87, 89.1, 94.6, 102, 107.4, 113, 119.4, 124.2, 127, 129.8, 132.9, 136.1, 139, 141.7, 144.4, 147.4, 150.9, 155.9, 161.5, 166.2, 169.6, 171.9, 172.9, 173.4, 173.8, 174.2, 174.2, 174.1), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(76, 80.1, 85.9, 91.4, 95.2, 103.5, 111.6, 118.1, 126.3, 132.8, 139.1, 143.4, 147.5, 150.6, 154, 157.6, 160.9, 163.8, 166.3, 168.6, 171, 173.8, 177.3, 180.7, 183.4, 185.3, 186.2, 186.4, 186.7, 187.2, 188), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(68.8, 73.5, 77.5, 80.8, 84, 95.2, 103.1, 111.1, 118.4, 124.9, 130.7, 134, 137.5, 140.3, 143, 145.5, 148, 150.8, 153.6, 157.3, 162.1, 167, 171.2, 174.4, 176.8, 178.4, 179.1, 179.7, 180.1, 180.5, 180.8), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list( args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(82.2, 88.9, 90.9, 93, 95.3, 103.8, 111.8, 117.1, 123.7, 130.4, 136.4, 139.3, 142.2, 145.2, 148.3, 151.2, 154.2, 157.6, 161.8, 166.5, 171.1, 174.9, 177.9, 180.1, 181.3, 181.8, 182.2, 182.7, 183.1, 183.4, 183.7), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals")), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(77, 82.5, 85.6, 87.9, 90.3, 98.3, 107.2, 114.6, 121.9, 129.2, 135.9, 139.1, 142.2, 145, 147.8, 150.5, 153.5, 157.5, 161.5, 165.5, 169.7, 173.1, 175.6, 177.2, 178.3, 179, 179.2, 179.3, 179.8, 180.3, 180.7), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" )), structure(list(args = c(1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 6, 7, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18), vals = structure(c(75, 79.2, 82.2, 84.6, 87, 95.8, 103.1, 110.2, 116.1, 122.2, 127.7, 130.7, 133.7, 136.8, 139.8, 142.6, 145.1, 147.3, 150.2, 153.3, 156.7, 160.5, 164.1, 167.7, 171, 173.1, 174.7, 175.6, 176.1, 176.3, 176.4), .Names = c("1", "1.25", "1.5", "1.75", "2", "3", "4", "5", "6", "7", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18"))), .Names = c("args", "vals" ))), labels = list("girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "girl", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy", "boy")), class = "functional") ) ddalpha/R/dataf.sim.r0000644000176200001440000000773213160011536014106 0ustar liggesusersdataf.sim.1.CFF07 <- function(numTrain = 100, numTest = 50, numDiscrets = 51, plot = FALSE){ # Processes: # X(t) = m_0(t) + e(t), m_0(t) = 30*(1-t)*t^1.2 # Y(t) = m_1(t) + e(t), m_1(t) = 30*(1-t)^1.2*t # e(t): Gaussian with mean = 0, cov(X(s), X(t)) = 0.2*exp(-abs(s - t)/0.3) t <- 0:(numDiscrets - 1)/(numDiscrets - 1) mean0 <- 30*(1-t)*t^1.2 mean1 <- 30*(1-t)^1.2*t cov <- matrix(nrow=numDiscrets, ncol=numDiscrets) for (i in 1:numDiscrets){ for (j in 1:numDiscrets){ cov[i,j] <- 0.2*exp(-abs(t[i] - t[j])/0.3) } } X <- mvrnorm(n=numTrain+numTest, mu=mean0, Sigma=cov) Y <- mvrnorm(n=numTrain+numTest, mu=mean1, Sigma=cov) datafX <- list() datafY <- list() labelsX <- as.list(rep(0,numTrain+numTest)) labelsY <- as.list(rep(1,numTrain+numTest)) for (i in 1:(numTrain + numTest)){ datafX[[i]] <- list(args = t, vals = X[i,]) datafY[[i]] <- list(args = t, vals = Y[i,]) } learn <- list(dataf = c(head(datafX, numTrain), head(datafY, numTrain)), labels = c(head(labelsX, numTrain), head(labelsY, numTrain))) class(learn) = "functional" test <- list(dataf = c(tail(datafX, numTest), tail(datafY, numTest)), labels = c(tail(labelsX, numTest), tail(labelsY, numTest))) class(test) = "functional" if (plot){ plot(0, type="n", xlim=c(0,1), ylim=c(0, 9), main=paste("Model 1 from CuevasFF07: ", "0 red (", sum(unlist(learn$labels) == 0), "), ", "1 blue (", sum(unlist(learn$labels) == 1), "), ", sep="")) grid() for (i in 1:length(learn$dataf)){ if (learn$labels[[i]] == 0){ lineColor <- "red" lineType <- 1 } if (learn$labels[[i]] == 1){ lineColor <- "blue" lineType <- 2 } lines(learn$dataf[[i]]$args, learn$dataf[[i]]$vals, col=lineColor, lty=lineType) } } return (list(learn = learn, test = test)) } dataf.sim.2.CFF07 <- function(numTrain = 100, numTest = 50, numDiscrets = 51, plot = FALSE){ # Processes # X(t) = m_0(t) + e(t), m_0(t) = 30*(1-t)*t^2 + 0.5*abs(sin(20*pi*t)) # Y(t) = smooth.spline with 8 knots # e(t): Gaussian with mean = 0, cov(X(s), X(t)) = 0.2*exp(-abs(s - t)/0.3) t <- 0:(numDiscrets - 1)/(numDiscrets - 1) mean0 <- 30*(1 - t)*t^2 + 0.5*abs(sin(20*pi*t)) cov <- matrix(nrow=numDiscrets, ncol=numDiscrets) for (i in 1:numDiscrets){ for (j in 1:numDiscrets){ cov[i,j] <- 0.2*exp(-abs(t[i] - t[j])/0.3) } } X <- mvrnorm(n=numTrain+numTest, mu=mean0, Sigma=cov) Y <- NULL for (i in 1:nrow(X)){ Y <- rbind(Y, smooth.spline(t, X[i,], nknots = 8)$y) } datafX <- list() datafY <- list() labelsX <- as.list(rep(0,numTrain+numTest)) labelsY <- as.list(rep(1,numTrain+numTest)) for (i in 1:(numTrain + numTest)){ datafX[[i]] <- list(args = t, vals = X[i,]) datafY[[i]] <- list(args = t, vals = Y[i,]) } learn <- list(dataf = c(head(datafX, numTrain), head(datafY, numTrain)), labels = c(head(labelsX, numTrain), head(labelsY, numTrain))) class(learn) = "functional" test <- list(dataf = c(tail(datafX, numTest), tail(datafY, numTest)), labels = c(tail(labelsX, numTest), tail(labelsY, numTest))) class(test) = "functional" if (plot){ plot(0, type="n", xlim=c(0,1), ylim=c(0, 7), main=paste("Model 2 from CuevasFF07: ", "0 red (", sum(unlist(learn$labels) == 0), "), ", "1 blue (", sum(unlist(learn$labels) == 1), "), ", sep="")) grid() for (i in 1:length(learn$dataf)){ if (learn$labels[[i]] == 0){ lineColor <- "red" lineType <- 1 } if (learn$labels[[i]] == 1){ lineColor <- "blue" lineType <- 2 } lines(learn$dataf[[i]]$args, learn$dataf[[i]]$vals, col=lineColor, lty=lineType) } } return (list(learn = learn, test = test)) }ddalpha/R/depth.contours.r0000644000176200001440000002767512776660136015251 0ustar liggesusers################################################################################ # File: depth.contours.r # Created by: Oleksii Pokotylo # First published: 03.07.2015 # Last revised: 13.11.2015 # # Visualization of the depth contours ################################################################################ gcolors = c("red", "blue", "green", "orange", "violet") depth.contours.ddalpha <- function(ddalpha, main = "", xlab="", ylab = "", drawplot = T, frequency=100, levels = 10, drawsep = T, ...){ if(class(ddalpha)!="ddalpha") stop("Not a 'ddalpha' classifier") if (ddalpha$dimension != 2) { warning ("The contours may be drawn only for 2 dimensional datasets") return(0) } if (ddalpha$needtransform == 1){ data = ddalpha$patterns[[1]]$transformer(ddalpha$patterns[[1]]$points, inv = T) for (i in 1:length(ddalpha$patterns)) data = rbind(data, ddalpha$patterns[[i]]$transformer(ddalpha$patterns[[i]]$points, inv = T)) }else{ data = ddalpha$patterns[[1]]$points for (i in 1:length(ddalpha$patterns)) data = rbind(data, ddalpha$patterns[[i]]$points) } classes = rep(gcolors[1], ddalpha$patterns[[1]]$cardinality) for (i in 1:length(ddalpha$patterns)) classes = c(classes, rep(gcolors[i], ddalpha$patterns[[i]]$cardinality)) margins = c(min(data[,1]), max(data[,1]), min(data[,2]), max(data[,2])); margins = margins + c(-0.1*(margins[2]-margins[1]), 0.1*(margins[2]-margins[1]), -0.1*(margins[4]-margins[3]), 0.1*(margins[4]-margins[3])) C = ncol(data) cr = 0 if (drawplot) plot(data, col = classes, main = main, xlab=xlab, ylab = ylab, ...) if (!is.null(ddalpha$methodDepth)) if (ddalpha$methodDepth == "Mahalanobis" && ddalpha$mahEstimate == "moment"){ # Mahalanobis depth for (i in seq(length(ddalpha$patterns))){ mahalanobisRegions(ddalpha$patterns[[i]]$points, levels, col = gcolors[i]) } } else if (ddalpha$methodDepth == "Mahalanobis" && ddalpha$mahEstimate == "MCD"){ # Mahalanobis depth mit MCD for (i in seq(length(ddalpha$patterns))){ mahalanobisMCDRegions(ddalpha$patterns[[i]]$points, ddalpha$mahParMcd, levels, col = gcolors[i]) } } else # if (ddalpha$methodDepth == "zonoid"){ # if (require(WMTregions)) # for (i in seq(length(ddalpha$patterns))){ # wmtRegions(ddalpha$patterns[[i]]$points, depths = c(1:9/10), trtype = "zonoid", col = gcolors[i]) # } # else{ # contourRegions(ddalpha, margins = margins, depths = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1), frequency=frequency) # } # } else # if (ddalpha$methodDepth == "halfspace"){ # library(depth) # for (i in seq(length(ddalpha$patterns))){ # locationRegions(ddalpha$patterns[[i]]$points, depths = c(1:9/10), col = gcolors[i]) # } # } else # no formal depth regions { cr = (contourRegions(ddalpha, margins = margins, depths = levels, frequency=frequency)) } lwd = 2 if(drawsep){ gx <- seq(min(ddalpha$raw[, 1]), max(ddalpha$raw[, 1]), length = frequency) gy <- seq(min(ddalpha$raw[, 2]), max(ddalpha$raw[, 2]), length = frequency) y <- as.matrix(expand.grid(gx, gy)) depthcontours = ddalpha.classify(ddalpha = ddalpha, objects = y) depthcontours = as.numeric(unlist(depthcontours)) contour(gx, gy, matrix(depthcontours, nrow=length(gx), ncol = length(gy)), add = TRUE, levels = unique(depthcontours)+0.5, drawlabels = FALSE, col = "black", lwd = lwd) } invisible(cr) } depth.contours <- function(data, depth, main = "", xlab="", ylab = "", drawplot = T, frequency=100, levels = 10, col = "red", ...){ if(!(is.matrix(data)||is.data.frame(data))) stop("Data is not a matrix or a data frame") if (ncol(data) != 2) { stop("The contours may be drawn only for 2 dimensional datasets") } if (drawplot){ #cc = tryCatchCapture( plot(data, col = col, main = main, xlab=xlab, ylab = ylab, ...) #, err = F) # catch all warnings about unused params #wrns = sort(unique(cc$warnings)) #values = gsub("\"(.+)\".+", "\\1", wrns) #if(lenght(values)>0) # warning("Unused by 'plot' arguments: ", paste(unused, collapse = ', ')) } margins = c(min(data[,1]), max(data[,1]), min(data[,2]), max(data[,2])); margins = margins + c(-0.1*(margins[2]-margins[1]), 0.1*(margins[2]-margins[1]), -0.1*(margins[4]-margins[3]), 0.1*(margins[4]-margins[3])) if (depth == "Mahalanobis"){ # Mahalanobis depth mahalanobisRegions(data, levels, col = col) } else # if (depth == "zonoid"){ # if (require(WMTregions)) # wmtRegions(data, depths = c(1:9/10), trtype = "zonoid", col = col) # else{ # contourRegionsData(data, depth = depth, margins = margins, depths = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1), frequency=frequency, col = col, ...) # } # } else # if (depth == "halfspace"){ # library(depth) # locationRegions(data, depths = c(1:9/10), col = col) # } else # no formal depth regions { invisible(contourRegionsData(data, depth = depth, margins = margins, depths = levels, frequency=frequency, col = col, ...)) } invisible(0) } # wmtRegions <- function(x, depths = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), trtype = "zonoid", col = "black"){ # fname <- "Cloud.dat" # #trname <- "TRegion_vertices.dat" # trname <- "tmp_vrtheap.dat" # fdir = getwd() # for (i in 1:length(depths)){ # ffullname = as.character(paste(fdir, "/", fname, sep = "")) # write(trtype, ffullname) # write(depths[i], ffullname, append = TRUE) # write(ncol(x), ffullname, append = TRUE) # write(nrow(x), ffullname, append = TRUE) # write(array(t(x), dim = c(nrow(x), ncol(x))), ffullname, ncolumns = ncol(x), append = TRUE) # WMTR() # cat("Calculated for i = ", i, "\n") # wmtreg <- read.table(as.character(paste(fdir, "/", trname, sep = "")), sep=" ") # unlink(as.character(paste(fdir, "/", trname, sep = ""))) # wmtreg <- as.matrix(wmtreg) # numribs <- nrow(wmtreg)/2 # for (i in 1:numribs){ # lines(rbind(wmtreg[i*2 - 1,], wmtreg[i*2,]), col = col) # } # } # } # # locationRegions <- function(x, depths = NULL, col = "black"){ # numLearn <- nrow(x) # vert = isodepth(x, c(2:(numLearn - 1)), output = T, dpth = as.integer(depths*numLearn/2)) # for (verticles in vert){ # if(is.null(verticles) || nrow(verticles)<1) next # verticles = rbind(verticles, verticles[1,]) # lines(verticles, col = col) # } # } mahalanobisRegions <- function(x, depths = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1), col = "black"){ if(is.na(depths) || is.null(depths)) depths = 10 if(length(depths) == 1 && depths > 1) depths = seq(0.0001, 1, length.out = depths) c <- c(0,0) for (i in 1:nrow(x)){ c <- c + x[i,] } mu <- c / nrow(x) sigma.inv <- solve(cov(x)) for (i in 1:length(depths)){ ellipsem(mu = mu, amat = sigma.inv, c2 = 1/depths[i] - 1, showcentre = F, col = col) } } mahalanobisMCDRegions <- function(x, alpha = 1/2, depths = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1), col = "black"){ if(is.na(depths) || is.null(depths)) depths = 10 if(length(depths) == 1 && depths > 1) depths = seq(0.0001, 1, length.out = depths) # library(robustbase) estimate <- covMcd(x, alpha = alpha) mu <- estimate$center sigma.inv <- solve(estimate$cov) for (i in 1:length(depths)){ ellipsem(mu = mu, amat = sigma.inv, c2 = 1/depths[i] - 1, showcentre = F, col = col) } } contourRegions <- function(ddalpha, margins = NULL, depths, frequency=100){ if (is.null(margins)){ if (ddalpha$needtransform == 1) data = rbind(ddalpha$patterns[[1]]$transformer(ddalpha$patterns[[1]]$points, inv = T), ddalpha$patterns[[2]]$transformer(ddalpha$patterns[[2]]$points, inv = T)) else data = rbind(ddalpha$patterns[[1]]$points, ddalpha$patterns[[2]]$points) margins = c(min(data[,1]), max(data[,1]), min(data[,2]), max(data[,2])); margins = margins + c(-0.1*(margins[2]-margins[1]), 0.1*(margins[2]-margins[1]), -0.1*(margins[4]-margins[3]), 0.1*(margins[4]-margins[3])) } gx <- seq(margins[1], margins[2], length=frequency) gy <- seq(margins[3], margins[4], length=frequency) y <- as.matrix(expand.grid(gx, gy)) depthcontours <- .ddalpha.count.depths(ddalpha, y) if(is.na(depths) || is.null(depths)) depths = 10 if(length(depths) == 1 && depths > 1) depths = seq(0, max(depthcontours), length.out = depths) for (i in seq(length(ddalpha$patterns))){ contour(gx, gy, matrix(depthcontours[,i], nrow=length(gx), ncol=length(gy)), add=TRUE, levels=depths*max(depthcontours), drawlabels=FALSE, col = gcolors[i]) } invisible(list(gx = gx, gy = gy, depthcontours = depthcontours)) } contourRegionsData <- function(data, depth, margins = NULL, depths = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1), frequency=100, col = "red", ...){ if (is.null(depth) || depth == "none"){ invisible (0);} else{ # df = switch(depth, # "zonoid" = function(x, data, ...) depth.zonoid(x, data) , # "halfspace" = depth.halfspace, # "simplicialVolume" = depth.simplicialVolume, # "simplicial" = depth.simplicial, # "Mahalanobis" = function(x, X) (.Mahalanobis_depth(x, colMeans(X), solve(cov(X)))), # "projection" = depth.projection, # "spatial" = depth.spatial # ) df = function(x, data, ...) ddalpha::depth.(x, data, notion = depth, ...) if (is.null(margins)){ margins = c(min(data[,1]), max(data[,1]), min(data[,2]), max(data[,2])); margins = margins + c(-0.1*(margins[2]-margins[1]), 0.1*(margins[2]-margins[1]), -0.1*(margins[4]-margins[3]), 0.1*(margins[4]-margins[3])) } gx <- seq(margins[1], margins[2], length=frequency) gy <- seq(margins[3], margins[4], length=frequency) y <- as.matrix(expand.grid(gx, gy)) depthcontours <- df(y,data,...) if(is.na(depths) || is.null(depths)) depths = 10 if(length(depths) == 1 && depths > 1) depths = seq(0.0001, max(depthcontours), length.out = depths) contour(gx, gy, matrix(depthcontours, nrow=length(gx), ncol=length(gy)), add=TRUE, levels=depths, drawlabels=FALSE, col = col) invisible(list(gx = gx, gy = gy, depthcontours = depthcontours)) } } ellipsem <- function (mu, amat, c2, npoints = 100, showcentre = T, col, ...){ if (all(dim(amat) == c(2, 2))) { eamat <- eigen(amat) hlen <- sqrt(c2/eamat$val) theta <- angle(eamat$vec[1, 1], eamat$vec[2, 1]) ellipse(hlen[1], hlen[2], theta, mu[1], mu[2], npoints = npoints, col = col, ...) if (showcentre) points(mu[1], mu[2], pch = 3) } invisible() } ellipse <- function (hlaxa = 1, hlaxb = 1, theta = 0, xc = 0, yc = 0, newplot = F, npoints = 100, ...){ a <- seq(0, 2 * pi, length = npoints + 1) x <- hlaxa * cos(a) y <- hlaxb * sin(a) alpha <- angle(x, y) rad <- sqrt(x^2 + y^2) xp <- rad * cos(alpha + theta) + as.double(xc) yp <- rad * sin(alpha + theta) + as.double(yc) if (newplot) plot(xp, yp, type = "l", ...) else lines(xp, yp, ...) invisible() } angle <- function (x, y) { angle2 <- function(xy) { x <- xy[1] y <- xy[2] if (x > 0) { atan(y/x) } else { if (x < 0 & y != 0) { atan(y/x) + sign(y) * pi } else { if (x < 0 & y == 0) { pi } else { if (y != 0) { (sign(y) * pi)/2 } else { NA } } } } } apply(cbind(x, y), 1, angle2) }ddalpha/R/is.in.convex.r0000644000176200001440000000264212526722560014567 0ustar liggesusers################################################################################ # File: is.in.convex.r # Created by: Pavlo Mozharovskyi # First published: 28.02.2013 # Last revised: 28.02.2013 # # Check if points lie in the convex hulls of the data clouds. ################################################################################ is.in.convex <- function(x, data, cardinalities, seed = 0){ if (!is.numeric(data) || !is.matrix(data) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.vector(cardinalities, mode = "numeric") || is.na(min(cardinalities)) || sum(.is.wholenumber(cardinalities)) != length(cardinalities) || min(cardinalities) <= 0 || sum(cardinalities) != nrow(data)){ stop("Argument \"cardinalities\" should be a vector of cardinalities of the classes in \"data\" ") } if (sum(cardinalities < ncol(data) + 1) != 0){ stop("Not in all classes sufficiently enough objetcs") } if (!is.matrix(x) && is.vector(x)){ x <- matrix(x, nrow=1) } if (!is.numeric(x)){ stop("Argument \"x\" should be numeric") } if (ncol(x) != ncol(data)){ stop("Dimensions of the arguments \"x\" and \"data\" should coincide") } is.in.convex <- .count_convexes(x, data, cardinalities, seed) return (is.in.convex) } ddalpha/R/depth.zonoid.r0000644000176200001440000000252712775161032014652 0ustar liggesusers################################################################################ # File: depth.zonoid.r # Created by: Pavlo Mozharovskyi # First published: 28.02.2013 # Last revised: 15.05.2013 # # Computation of the zonoid data depth. ################################################################################ depth.zonoid <- function(x, data, seed = 0){ if (seed!=0) set.seed(seed) if (!is.matrix(x) && is.vector(x)){ x <- matrix(x, nrow=1) } if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.numeric(x)){ stop("Argument \"x\" should be numeric") } if (ncol(x) != ncol(data)){ stop("Dimensions of the arguments \"x\" and \"data\" should coincide") } if (ncol(data) + 1 > nrow(data)){ #? stop("To few data points") } points <- as.vector(t(data)) objects <- as.vector(t(x)) ds <- .C("ZDepth", as.double(points), as.double(objects), as.integer(nrow(data)), as.integer(nrow(x)), as.integer(ncol(data)), as.integer(seed), depths=double(nrow(x)))$depths return (ds) } ddalpha/R/ddalphaf.r0000644000176200001440000010455013162516626014013 0ustar liggesusersddalphaf.train <- function(dataf, labels, subset, adc.args = list(instance = "avr", numFcn = -1, numDer = -1), classifier.type = c("ddalpha", "maxdepth", "knnaff", "lda", "qda"), cv.complete = FALSE, maxNumIntervals = min(25, ceiling(length(dataf[[1]]$args)/2)), seed = 0, ...){ # Trains the functional DDalpha-classifier # Args: # dataf: list containing lists (functions) of two vectors of equal length, # named "args" and "vals": arguments sorted in ascending order and # corresponding them values respectively # labels: output labels of the functinal observations # other arguments: TODO # Returns: # Functional DDalpha-classifier # Check "dataf" if (!is.list(dataf)) stop("Argument 'dataf' must be a list") for (df in dataf) if (!(is.list(df) && length(df) == 2 && !is.null(df$args) && !is.null(df$vals) && is.vector(df$args) && is.vector(df$vals) && is.numeric(df$args) && is.numeric(df$vals) && length(df$args) == length(df$vals) && sort(df$args) == df$args)) stop("Argument 'dataf' must be a list containing lists (functions) of two vectors of equal length, named 'args' and 'vals': arguments sorted in ascending order and corresponding them values respectively") if(!missing(subset)) { dataf = dataf[subset] labels = labels[subset] } # Check "labels" if (!(length(dataf)==length(labels) && length(unique(labels))>=2)) stop("Argument 'labels' has wrong format") # Check classifier.type classifier.type = match.arg(classifier.type) # Check "adc.method" adc.method = 'equalCover' if (seed != 0) set.seed(seed) # Check "adc.args" if(!is.null(names(adc.args))){ if (!(adc.args$instance %in% c("val", "avr") && ((adc.args$numFcn >= 0 && adc.args$numDer >= 0 && (adc.args$numFcn + adc.args$numDer >= 2)) || (adc.args$numFcn == -1 && adc.args$numDer == -1)))) stop("Argument 'adc.args' has wrong format") } else { if(!is.list(adc.args)) stop("Argument 'adc.args' has wrong format") for(.adc.args in adc.args){ if (!(.adc.args$instance %in% c("val", "avr") && ((.adc.args$numFcn >= 0 && .adc.args$numDer >= 0 && (.adc.args$numFcn + .adc.args$numDer >= 2)) || (.adc.args$numFcn == -1 && .adc.args$numDer == -1)))) stop("Argument 'adc.args' has wrong format") } } # CV if (is.null(names(adc.args)) || adc.args$numFcn == -1 && adc.args$numDer == -1){ if (cv.complete){ res <- getBestSpaceCV(dataf, labels, adc.method, adc.args, classifier.type, num.chunks=10, numMax = maxNumIntervals, ...) }else{ res <- getBestSpace(dataf, labels, adc.method, adc.args, classifier.type, num.chunks=10, numMax = maxNumIntervals, ...) } the.args <- res$args num.cv <- res$num.cv }else{ the.args <- adc.args num.cv <- 0 } # Pointize points <- GetPoints(dataf, labels, adc.method, the.args) if(any(!is.finite(points$data))) { warning("infinite or missing values in 'points$data'") return (NA) } # Apply chosen classifier to train the data if (classifier.type == "ddalpha"){ classifier <- ddalpha.train(points$data, seed = seed, ...) } if (classifier.type == "maxdepth"){ classifier <- ddalpha.train(points$data, separator = "maxD", seed = seed, ...) } if (classifier.type == "knnaff"){ classifier <- knnaff.train(points$data, i = 0, ...) } if (classifier.type == "lda"){ classifier <- lda.train(points$data, ...) } if (classifier.type == "qda"){ classifier <- qda.train(points$data, ...) } # Create the eventual output structure ddalphaf <- list(dataf = points$dataf, #labels_orig = labels, labels = points$labels, adc.method = adc.method, adc.args = the.args, adc.num.cv = num.cv, adc.transmat = points$adc.transmat, data = points$data, classifier.type = classifier.type, classifier = classifier) class(ddalphaf) <- "ddalphaf" return (ddalphaf) } ddalphaf.classify <- function(ddalphaf, objectsf, subset, ...){ # Classifies functions # Args: # objectsf: sample to classify, a list containing lists (functions) of # two vectors of equal length, named "args" and "vals": # arguments sorted in ascending order and corresponding them # values respectively # ddalphaf: functional DDalpha-classifier # Returns: # List of labels assigned to the functions from "objectsf" # Check "objectsf" if (!is.list(objectsf)) stop("Argument 'objectsf' must be a list") if (!is.null(objectsf$args)){ objectsf = list(objectsf) # there was a single element } if(!missing(subset)) { objectsf = objectsf[subset] } for (df in objectsf) if (!(is.list(df) && length(df) == 2 && !is.null(df$args) && !is.null(df$vals) && is.vector(df$args) && is.vector(df$vals) && is.numeric(df$args) && is.numeric(df$vals) && length(df$args) == length(df$vals) && sort(df$args) == df$args)) stop("Argument 'objectsf' must be a list containing lists (functions) of two vectors of equal length, named 'args' and 'vals': arguments sorted in ascending order and corresponding them values respectively") # Prepare to multivariate classification objectsf.equalized <- equalize(objectsf) if (ddalphaf$adc.method == "equalCover"){ if (ddalphaf$adc.args$instance == "val"){ input <- getValGrid(objectsf.equalized, ddalphaf$adc.args$numFcn, ddalphaf$adc.args$numDer) } if (ddalphaf$adc.args$instance == "avr"){ input <- getAvrGrid(objectsf.equalized, ddalphaf$adc.args$numFcn, ddalphaf$adc.args$numDer) } if (!is.null(ddalphaf$adc.transmat)){ input <- input%*%ddalphaf$adc.transmat } } # Classify and assign class labels if (ddalphaf$classifier.type == "ddalpha" || ddalphaf$classifier.type == "maxdepth"){ output <- ddalpha.classify(objects = input, ddalpha = ddalphaf$classifier, ...) } if (ddalphaf$classifier.type == "knnaff"){ output <- knnaff.classify(input, ddalphaf$classifier, ...) } if (ddalphaf$classifier.type == "lda"){ output <- lda.classify(input, ddalphaf$classifier, ...) } if (ddalphaf$classifier.type == "qda"){ output <- qda.classify(input, ddalphaf$classifier, ...) } classes <- list() for (i in 1:length(output)){ # if (is.numeric(output[[i]])){ classes[[i]] <- ddalphaf$labels[[ output[[i]] ]] # }else{ # classes[[i]] <- output[[i]] # } } return (classes) } predict.ddalphaf <- function(object, objectsf, subset, ...){ return(ddalphaf.classify(object, objectsf, subset, ...)) } is.in.convexf <- function(objectsf, dataf, cardinalities, adc.method = "equalCover", adc.args = list(instance = "val", numFcn = 5, numDer = 5), seed = 0){ # Checks if the function(s) lie(s) inside convex hulls of the # functions from the sample in the projection space # Args: # objectsf: list containing lists (functions) of two vectors of equal # length, named "args" and "vals": arguments sorted in # ascending order and corresponding them values # respectively. These functions are supposed to be checked # for 'outsiderness' # dataf: list containing lists (functions) of two vectors of equal # length, named "args" and "vals": arguments sorted in # ascending order and corresponding them values respectively # cardinalities: cardinalities of the classes in "dataf" # other arguments: TODO # Returns: # Vector with 1s for those lying inside of at least one of the convex hulls # of the classes and 0s for those lying beyond them # Data-consistency checks # TODO # Project "objectsf" into a multivariate space objectsf.equalized <- equalize(objectsf) if (adc.method == "equalCover"){ if (adc.args$instance == "val"){ objects <- getValGrid(objectsf.equalized, adc.args$numFcn, adc.args$numDer) } if (adc.args$instance == "avr"){ objects <- getAvrGrid(objectsf.equalized, adc.args$numFcn, adc.args$numDer) } } # Project "dataf" into a multivariate space dataf.equalized <- equalize(dataf) if (adc.method == "equalCover"){ if (adc.args$instance == "val"){ data <- getValGrid(dataf.equalized, adc.args$numFcn, adc.args$numDer) } if (adc.args$instance == "avr"){ data <- getAvrGrid(dataf.equalized, adc.args$numFcn, adc.args$numDer) } } in.convex <- is.in.convex(objects, data, cardinalities, seed) return (in.convex) } print.ddalphaf <- function(x, ...){ cat("ddalphaf:\n") cat("\t num.functions = ", length(x$dataf), ", num.patterns = ", length(unique(x$labels)), "\n", sep="") # cat("\t adc.method", x$adc.method, "\"\n", sep="") cat("\t adc: \"", x$adc.args$instance, "; numFcn:", x$adc.args$numFcn, "; numDer:", x$adc.args$numDer, "\"\n", sep="") cat("\t adc.num.cv \"", x$adc.num.cv, "\"\n", sep="") cat("\t adc.transmat \"", x$adc.transmat, "\"\n", sep="") cat("\t classifier.type \"", x$classifier.type, "\"\n", sep="") cat("classifier: ") print(x$classifier) } summary.ddalphaf <- function(object, ...) print.ddalphaf(object, ...) ################################################################################ # Functions below are used for intermediate computations # ################################################################################ equalize <- function(dataf){ # 1. Adjusts the data to have equal (the largest) argument interval # 2. Calclates - numerically - derivative # Args: # dataf: list containing lists (functions) of two vectors # of equal length, named "args" and "vals": arguments # sorted in ascending order and corresponding them # values respectively # Returns: # The list of lists of the same structure, 'equalized', # contating derivatives as 3rd vector named "der1" # Check whether every function contains fields "args" and "vals", # whether they are numerical and of equal length, have no NAs or # ties and are sorted in ascending order # TODO # 1. # Get argument bounds min <- Inf max <- -Inf for (i in 1:length(dataf)){ if (dataf[[i]]$args[1] < min){min <- dataf[[i]]$args[1]} if (dataf[[i]]$args[length(dataf[[i]]$args)] > max){ max <- dataf[[i]]$args[length(dataf[[i]]$args)] } } # and apply them to equalize functions timely for (i in 1:length(dataf)){ if (dataf[[i]]$args[1] > min){ dataf[[i]]$args <- c(min, dataf[[i]]$args) dataf[[i]]$vals <- c(dataf[[i]]$vals[1], dataf[[i]]$vals) } if (dataf[[i]]$args[length(dataf[[i]]$args)] < max){ dataf[[i]]$args <- c(dataf[[i]]$args, max) dataf[[i]]$vals <- c(dataf[[i]]$vals, dataf[[i]]$vals[length(dataf[[i]]$vals)]) } # Computational trick - add "-1" to the "left" #dataf[[i]]$args <- c(min - 1, dataf[[i]]$args) #dataf[[i]]$vals <- c(dataf[[i]]$vals[1], dataf[[i]]$vals) } # 2. for (i in 1:length(dataf)){ dataf[[i]] <- derive(dataf[[i]]) } return (dataf) } derive <- function(fcn){ # Adds 1st derivative to the function: a vector named "der1" # Args: # fcn: function, a list of two vectors of equal length, named "args" # and "vals": arguments sorted in ascending order and corresponding # them values respectively # Returns: # The list of of the same structure contating derivative as 3rd # vector named "der1" fcn$der1 <- rep(0, length(fcn$args)) fcn$der1[1] = 0 for (i in 2:length(fcn$der1)){ fcn$der1[i] <- (fcn$vals[i] - fcn$vals[i - 1])/ (fcn$args[i] - fcn$args[i - 1]) } return (fcn) } getValue <- function(fcn, arg, fcnInstance){ # Gets the value of the function or its derivative for the given argument # value # Args: # fcn: function, a list of vectors of equal length, named "args" # (arguments), "vals" (function values) [and it's # derivatives of order "I", named derI]; arguments (and # corresponding values) sorted in ascending order # arg: argument value at which the function (derivative) value # is to be taken # fcnInstance: inctance to be evaluated; "vals" for the function values, # "der1" for the first derivative # Returns: # Value of the function (derivative) # Check "arg", evt. "fcnInstance" # TODO # Find corresponding interval index <- 2 while (arg > fcn$args[index]){ index <- index + 1 } # Get the function value(s) by linear approximation if (fcnInstance == "vals"){ value <- fcn$vals[index - 1] + (fcn$vals[index] - fcn$vals[index - 1])* ((arg - fcn$args[index - 1])/(fcn$args[index] - fcn$args[index - 1])) } if (fcnInstance == "der1"){ value <- fcn$der1[index] } return (value) } getAvrValue <- function(fcn, argFrom, argTo, fcnInstance){ # Gets the average value of the function or its derivative on the given # interval # Args: # fcn: function, a list of vectors of equal length, named "args" # (arguments), "vals" (function values) [and it's # derivatives of order "I", named derI]; arguments (and # corresponding values) sorted in ascending order # argFrom: argument value from which the function (derivative) value # is to be averaged # argTo: argument value to which the function (derivative) value # is to be averaged # fcnInstance: inctance to be evaluated; "vals" for the function values, # "der1" for the first derivative # Returns: # Average value of the function (derivative) on the interval # (argFrom, argTo) # Check "argFrom" and "argTo", evt. "fcnInstance" # TODO # Define 'from' and 'to' interval indexFrom <- 2 while (argFrom > fcn$args[indexFrom]){ indexFrom <- indexFrom + 1 } indexTo <- 2 while (argTo > fcn$args[indexTo]){ indexTo <- indexTo + 1 } average <- 0 valTo <- getValue(fcn, argTo, fcnInstance) # Integrate curArgFrom <- argFrom if (fcnInstance == "vals"){ valFrom <- getValue(fcn, curArgFrom, "vals") while(indexFrom < indexTo){ average <- average + (valFrom + fcn$vals[indexFrom])* (fcn$args[indexFrom] - curArgFrom)/2 valFrom <- fcn$vals[indexFrom] curArgFrom <- fcn$args[indexFrom] indexFrom <- indexFrom + 1 } average <- average + (valFrom + valTo)*(argTo - curArgFrom)/2 } if (fcnInstance == "der1"){ while(indexFrom < indexTo){ average <- average + (fcn$der1[indexFrom])* (fcn$args[indexFrom] - curArgFrom) curArgFrom <- fcn$args[indexFrom] indexFrom <- indexFrom + 1 } average <- average + valTo*(argTo - curArgFrom) } average <- average/(argTo - argFrom) return (average) } getValGrid <- function(dataf, numFcn, numDer){ # Represents a function sample as a multidimensional (d="numFcn"+"numDer") # one averaging for that each function and it derivative on "numFcn" # (resp. "numDer") equal nonoverlapping covering intervals # Args: # dataf: list containing lists (functions) of vectors of equal length, # first two named "args" and "vals" are arguments sorted in # ascending order and having same bounds for all functions and # corresponding them values respectively # numFcn: number of function intervals # numDer: number of first-derivative intervals # Returns: # Matrix - a multidimensional presentation of the functional sample # Get argument bounds ("dataf" is equalized) min <- dataf[[1]]$args[1] max <- dataf[[1]]$args[length(dataf[[1]]$args)] # Get argument grid args <- dataf[[1]]$args argsFcn <- min + 0:numFcn*(max - min)/(numFcn - 1) argsDer <- min + 0:numDer*(max - min)/(numDer - 1) # Get function/derivative grid fcnGrid <- matrix(nrow = length(dataf), ncol = numFcn) derGrid <- matrix(nrow = length(dataf), ncol = numDer) if (numFcn > 0){ for (i in 1:length(dataf)){ # Set merging algorithm (Novikoff, Piter) cArgs <- 1 cArgsFcn <- 1 fcnGrid[i,1] <- dataf[[i]]$vals[1] while (cArgsFcn != numFcn){ # print(argsFcn) # print(fcnGrid[i,]) # cat(cArgs, " and ", cArgsFcn, "\n") # cat(args[cArgs + 1], " and ", argsFcn[cArgsFcn + 1], "\n") if (args[cArgs + 1] < argsFcn[cArgsFcn + 1]){ cArgs <- cArgs + 1 }else{ nextArg <- argsFcn[cArgsFcn + 1] fcnGrid[i,cArgsFcn + 1] <- dataf[[i]]$vals[cArgs] + (nextArg - args[cArgs])*dataf[[i]]$der1[cArgs + 1] if (args[cArgs + 1] == argsFcn[cArgsFcn + 1]){ cArgs <- cArgs + 1 } cArgsFcn <- cArgsFcn + 1 } } } } if (numDer > 0){ for (i in 1:length(dataf)){ # Again, set merging algorithm (Novikoff, Piter) cArgs <- 1 cArgsDer <- 1 derGrid[1] <- dataf[[i]]$ders[2] while (cArgsDer != numDer){ # print(argsDer) # print(derGrid[i,]) # cat(cArgs, " and ", cArgsDer, "\n") # cat(args[cArgs + 1], " and ", argsDer[cArgsDer + 1], "\n") if (args[cArgs + 1] < argsDer[cArgsDer + 1]){ cArgs <- cArgs + 1 }else{ derGrid[i,cArgsDer + 1] <- dataf[[i]]$der1[cArgs + 1] if (args[cArgs + 1] == argsDer[cArgsDer + 1]){ cArgs <- cArgs + 1 } cArgsDer <- cArgsDer + 1 } } } } mvX <- cbind(fcnGrid, derGrid) return (mvX) } getAvrGrid <- function(dataf, numFcn, numDer){ # Represents a function sample as a multidimensional (d="numFcn"+"numDer") # one averaging for that each function and it derivative on "numFcn" # (resp. "numDer") equal nonoverlapping covering intervals # Args: # dataf: list containing lists (functions) of vectors of equal length, # first two named "args" and "vals" are arguments sorted in # ascending order and having same bounds for all functions and # corresponding them values respectively # numFcn: number of function intervals # numDer: number of first-derivative intervals # Returns: # Matrix - a multidimensional presentation of the functional sample # Get argument bounds ("dataf" is equalized) min <- dataf[[1]]$args[1] max <- dataf[[1]]$args[length(dataf[[1]]$args)] # Get argument grid args <- dataf[[1]]$args argsFcn <- min + 0:numFcn*(max - min)/numFcn argsDer <- min + 0:numDer*(max - min)/numDer # Get function/derivative grid fcnGrid <- matrix(nrow = length(dataf), ncol = numFcn) derGrid <- matrix(nrow = length(dataf), ncol = numDer) if (numFcn > 0){ for (i in 1:length(dataf)){ # Set merging algorithm (Novikoff, Piter) cArgs <- 1 cArgsFcn <- 1 curArg <- min curFcn <- dataf[[i]]$vals[1] curAvr <- 0 while (cArgsFcn != numFcn + 1){ # print(argsFcn) # print(fcnGrid[i,]) # cat(cArgs, " and ", cArgsFcn, "\n") # cat(args[cArgs + 1], " and ", argsFcn[cArgsFcn + 1], "\n") if (args[cArgs + 1] < argsFcn[cArgsFcn + 1]){ nextArg <- args[cArgs + 1] nextFcn <- dataf[[i]]$vals[cArgs + 1] curAvr <- curAvr + (nextArg - curArg)*(nextFcn + curFcn)/2 cArgs <- cArgs + 1 }else{ nextArg <- argsFcn[cArgsFcn + 1] nextFcn <- dataf[[i]]$vals[cArgs] + (nextArg - args[cArgs])*dataf[[i]]$der1[cArgs + 1] fcnGrid[i,cArgsFcn] <- curAvr + (nextArg - curArg)*(nextFcn + curFcn)/2 curAvr <- 0 if (args[cArgs + 1] == argsFcn[cArgsFcn + 1]){ cArgs <- cArgs + 1 } cArgsFcn <- cArgsFcn + 1 } curArg <- nextArg curFcn <- nextFcn } } } fcnGrid <- fcnGrid/(argsFcn[2] - argsFcn[1]) if (numDer > 0){ for (i in 1:length(dataf)){ # Again, set merging algorithm (Novikoff, Piter) cArgs <- 1 cArgsDer <- 1 curArg <- min curAvr <- 0 while (cArgsDer != numDer + 1){ # print(argsDer) # print(derGrid[i,]) # cat(cArgs, " and ", cArgsDer, "\n") # cat(args[cArgs + 1], " and ", argsDer[cArgsDer + 1], "\n") if (args[cArgs + 1] < argsDer[cArgsDer + 1]){ nextArg <- args[cArgs + 1] curAvr <- curAvr + (nextArg - curArg)*dataf[[i]]$der1[cArgs + 1] cArgs <- cArgs + 1 }else{ nextArg <- argsDer[cArgsDer + 1] derGrid[i,cArgsDer] <- curAvr + (nextArg - curArg)*dataf[[i]]$der1[cArgs + 1] curAvr <- 0 if (args[cArgs + 1] == argsDer[cArgsDer + 1]){ cArgs <- cArgs + 1 } cArgsDer <- cArgsDer + 1 } curArg <- nextArg } } } derGrid <- derGrid/(argsDer[2] - argsDer[1]) mvX <- cbind(fcnGrid, derGrid) return (mvX) } getVapnikBound <- function(points, dim = NULL){ n <- nrow(points) d <- ncol(points) - 1 lda <- lda.train(points) result <- lda.classify(points[,1:d], lda) empRisk <- sum(result != points[,d + 1])/n # Calculate the deviation from the empirical risk nu <- 1/n C <- 0 for (k in 0:d){ C <- C + 2*choose(n - 1, k) } epsilon <- sqrt( (log(C) - log(nu)) / (2*n) ) return (empRisk + epsilon) } GetPoints <- function(dataf, labels, adc.method, adc.args){ # Numerize labels names <- unique(labels) output <- rep(0, length(labels)) for (i in 1:length(labels)){ for (j in 1:length(names)){ if (labels[[i]] == names[[j]]){ output[i] = j break } } } # Pointize data dataf.equalized <- equalize(dataf) if (adc.method == "equalCover"){ if (adc.args$instance == "val"){ input <- getValGrid(dataf.equalized, adc.args$numFcn, adc.args$numDer) } if (adc.args$instance == "avr"){ input <- getAvrGrid(dataf.equalized, adc.args$numFcn, adc.args$numDer) } # Reduce dimension if needed princomps <- NULL newDim <- ncol(input) for (i in 1:length(names)){ classi <- input[output == i,1:ncol(input)] if(any(!is.finite(classi))) { warning("infinite or missing values in 'classi'") next } princompsi <- prcomp(x=classi, tol=sqrt(.Machine$double.eps)) #print(princompsi$sdev) newDimi <- sum(princompsi$sdev > sqrt(.Machine$double.eps)) if (newDimi < newDim){ newDim <- newDimi princomps <- princompsi } } #print(newDim) transmat <- NULL if (newDim < ncol(input)){ transmat <- matrix(as.vector(princomps$rotation[,1:newDim]), ncol=newDim) input <- input%*%transmat } # Combine data data <- cbind(input, output, deparse.level=0) } return (list(data = data, dataf = dataf.equalized, labels = names, adc.transmat = transmat)) } GetPointsAll <- function(dataf, labels, adc.method = "equalCover", adc.args = list(instance = "avr", numFcn = -1, numDer = -1), numMax){ # Numerize labels names <- unique(labels) output <- rep(0, length(labels)) for (i in 1:length(labels)){ for (j in 1:length(names)){ if (labels[[i]] == names[[j]]){ output[i] = j break } } } # Prepare values min <- dataf[[1]]$args[1] max <- dataf[[1]]$args[length(dataf[[1]]$args)] args <- dataf[[1]]$args fcnsAll <- list("") dersAll <- list("") dataf.equalized <- equalize(dataf) # Generate all one-type-argument ("fcn" or "der") for all num(Fcn,Der)-values for (numFcn in 1:numMax){ numDer <- numFcn argsFcn <- min + 0:numFcn*(max - min)/numFcn argsDer <- min + 0:numDer*(max - min)/numDer # Get function/derivative grid fcnGrid <- matrix(nrow = length(dataf.equalized), ncol = numFcn) derGrid <- matrix(nrow = length(dataf.equalized), ncol = numDer) for (i in 1:length(dataf.equalized)){ # Set merging algorithm (Novikoff, Piter) cArgs <- 1 cArgsFcn <- 1 curArg <- min curFcn <- dataf.equalized[[i]]$vals[1] curAvr <- 0 while (cArgsFcn != numFcn + 1){ if (args[cArgs + 1] < argsFcn[cArgsFcn + 1]){ nextArg <- args[cArgs + 1] nextFcn <- dataf.equalized[[i]]$vals[cArgs + 1] curAvr <- curAvr + (nextArg - curArg)*(nextFcn + curFcn)/2 cArgs <- cArgs + 1 }else{ nextArg <- argsFcn[cArgsFcn + 1] nextFcn <- dataf.equalized[[i]]$vals[cArgs] + (nextArg - args[cArgs])*dataf.equalized[[i]]$der1[cArgs + 1] fcnGrid[i,cArgsFcn] <- curAvr + (nextArg - curArg)*(nextFcn + curFcn)/2 curAvr <- 0 if (args[cArgs + 1] == argsFcn[cArgsFcn + 1]){ cArgs <- cArgs + 1 } cArgsFcn <- cArgsFcn + 1 } curArg <- nextArg curFcn <- nextFcn } } fcnsAll[[numFcn]] <- fcnGrid/(argsFcn[2] - argsFcn[1]) for (i in 1:length(dataf.equalized)){ # Again, set merging algorithm (Novikoff, Piter) cArgs <- 1 cArgsDer <- 1 curArg <- min curAvr <- 0 while (cArgsDer != numDer + 1){ if (args[cArgs + 1] < argsDer[cArgsDer + 1]){ nextArg <- args[cArgs + 1] curAvr <- curAvr + (nextArg - curArg)*dataf.equalized[[i]]$der1[cArgs + 1] cArgs <- cArgs + 1 }else{ nextArg <- argsDer[cArgsDer + 1] derGrid[i,cArgsDer] <- curAvr + (nextArg - curArg)*dataf.equalized[[i]]$der1[cArgs + 1] curAvr <- 0 if (args[cArgs + 1] == argsDer[cArgsDer + 1]){ cArgs <- cArgs + 1 } cArgsDer <- cArgsDer + 1 } curArg <- nextArg } } dersAll[[numDer]] <- derGrid/(argsDer[2] - argsDer[1]) } pointsAll <- list("") counter <- 1 # Construct the spaces, reducing dimension if needed for (dim in 2:numMax){ for(nDer in 0:dim){ nFcn <- dim - nDer tmp.args <- list(instance=adc.args$instance, numFcn=nFcn, numDer=nDer) if (nFcn == 0){ input <- dersAll[[nDer]] }else{ if (nDer == 0){ input <- fcnsAll[[nFcn]] }else{ input <- cbind(fcnsAll[[nFcn]], dersAll[[nDer]]) } } # Reduce dimension if needed princomps <- NULL newDim <- ncol(input) for (i in 1:length(names)){ classi <- input[output == i,1:ncol(input)] princompsi <- prcomp(x=classi, tol=sqrt(.Machine$double.eps)) newDimi <- sum(princompsi$sdev > sqrt(.Machine$double.eps)) if (newDimi < newDim){ newDim <- newDimi princomps <- princompsi } } transmat <- NULL if (newDim < ncol(input)){ transmat <- matrix(as.vector(princomps$rotation[,1:newDim]), ncol=newDim) input <- input%*%transmat } # Combine data tmp.points <- cbind(input, output, deparse.level=0) # Save to the list pointsAll[[counter]] <- list(data = tmp.points, adc.args = tmp.args, adc.transmat = transmat) counter <- counter + 1 } } return (pointsAll) } # adc.args is a list of args GetPointsArgs <- function(dataf, labels, adc.method = "equalCover", adc.args){ pointsAll = list() counter = 1 for(tmp.args in adc.args){ dat = GetPoints(dataf, labels, adc.method, tmp.args) pointsAll[[counter]] <- list(data = dat$data, adc.args = tmp.args, adc.transmat = dat$adc.transmat) counter <- counter + 1 } return (pointsAll) } getBestSpace <- function(dataf, labels, adc.method = "equalCover", adc.args = list(instance = "avr", numFcn = -1, numDer = -1), classifier.type = "ddalpha", num.chunks = 10, numMax, ...){ # First, get Vapnik bounds for all plausible spaces if(!is.null(names(adc.args))){ pointsAll <- GetPointsAll(dataf, labels, adc.method, adc.args, numMax) numTries <- numMax * (numMax + 1) / 2 + numMax + 1 - 3 } else { pointsAll <- GetPointsArgs(dataf, labels, adc.method, adc.args) numTries <- length(adc.args) } Vapnik.bounds <- rep(Inf, numTries) curTry <- 1 for (i in 1:length(pointsAll)){ tmp.args <- pointsAll[[i]]$adc.args tmp.points <- pointsAll[[i]]$data Vapnik.bounds[curTry] <- getVapnikBound(tmp.points, ncol(tmp.points) - 1) curTry <- curTry + 1 } # Second, get 5 best (i.e. lowest) Vapnik bounds # etalons <- sort(Vapnik.bounds)[1:5] # best.indices <- c() # while (length(best.indices) < 5 && length(etalons) > 0){ # best.indices <- c(best.indices, which(Vapnik.bounds == etalons[1])) # etalons <- etalons[-1] # } # best.indices <- best.indices[1:5] best.indices <- which(Vapnik.bounds %in% sort(Vapnik.bounds)[1:min(5, numTries)]) # Third, cross-validate over these best spaces errors <- rep(0, length(best.indices)) for (i in 1:length(best.indices)){ tmp.args <- pointsAll[[best.indices[i]]]$adc.args points.all <- pointsAll[[best.indices[i]]]$data d <- ncol(points.all) - 1 # Actually CV num.points <- nrow(points.all) indices.off <- num.chunks*(0:(ceiling(num.points/num.chunks) - 1)) for (j in 1:num.chunks){ # Determine points to be taken off take.off <- (indices.off + j)[(indices.off + j) <= num.points] # Apply chosen classifier if (classifier.type == "ddalpha"){ classifier <- ddalpha.train(points.all[-take.off,], ...) results <- ddalpha.classify(objects = points.all[take.off,1:d], ddalpha = classifier) } if (classifier.type == "maxdepth"){ classifier <- ddalpha.train(points.all[-take.off,], separator = "maxD", ...) results <- ddalpha.classify(objects = points.all[take.off,1:d], ddalpha = classifier) } if (classifier.type == "knnaff"){ classifier <- knnaff.train(points.all[-take.off,], i = i, ...) results <- knnaff.classify(points.all[take.off,1:d], classifier) } if (classifier.type == "lda"){ classifier <- lda.train(points.all[-take.off,], ...) results <- lda.classify(points.all[take.off,1:d], classifier) } if (classifier.type == "qda"){ classifier <- qda.train(points.all[-take.off,], ...) results <- qda.classify(points.all[take.off,1:d], classifier) } # Collect errors errors[i] <- errors[i] + sum( unlist(results) != points.all [take.off,d + 1]) } } best.i <- which.min(errors) new.args <- pointsAll[[best.indices[best.i]]]$adc.args return (list(args = new.args, num.cv = length(best.indices))) } getBestSpaceCV <- function(dataf, labels, adc.method = "equalCover", adc.args = list(instance = "val", numFcn = -1, numDer = -1), classifier.type = "ddalpha", num.chunks = 10, numMax, ...){ if(!is.null(names(adc.args))){ pointsAll <- GetPointsAll(dataf, labels, adc.method, adc.args, numMax) numTries <- numMax * (numMax + 1) / 2 + numMax + 1 - 3 } else { pointsAll <- GetPointsArgs(dataf, labels, adc.method, adc.args) numTries <- length(adc.args) } curTry <- 1 errors <- rep(0, length(pointsAll)) for (i in 1:length(pointsAll)){ points.all <- pointsAll[[i]]$data d <- ncol(points.all) - 1 # Actually CV num.points <- nrow(points.all) indices.off <- num.chunks*(0:(ceiling(num.points/num.chunks) - 1)) for (j in 1:num.chunks){ # Determine points to be taken off take.off <- (indices.off + j)[(indices.off + j) <= num.points] # Apply chosen classifier if (classifier.type == "ddalpha"){ classifier <- ddalpha.train(points.all[-take.off,], ...) results <- ddalpha.classify(objects = points.all[take.off,1:d], ddalpha = classifier) } if (classifier.type == "maxdepth"){ classifier <- ddalpha.train(points.all[-take.off,], separator = "maxD", ...) results <- ddalpha.classify(objects = points.all[take.off,1:d], ddalpha = classifier) } if (classifier.type == "knnaff"){ classifier <- knnaff.train(points.all[-take.off,], i = i, ...) results <- knnaff.classify(points.all[take.off,1:d], classifier) } if (classifier.type == "lda"){ classifier <- lda.train(points.all[-take.off,], ...) results <- lda.classify(points.all[take.off,1:d], classifier) } if (classifier.type == "qda"){ classifier <- qda.train(points.all[-take.off,], ...) results <- qda.classify(points.all[take.off,1:d], classifier) } # Collect errors errors[i] <- errors[i] + sum( unlist(results) != points.all [take.off,d + 1]) } } best.i <- which.min(errors) new.args <- pointsAll[[best.i]]$adc.args return (list(args = new.args, num.cv = length(pointsAll))) } ddalpha/R/dataf.medflies.r0000644000176200001440000040713412776660136015130 0ustar liggesusersdataf.medflies <- function() return(structure(list( name = "Medflies", args = "day", vals = "#eggs", dataf = list(structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 27L, 49L, 37L, 74L, 54L, 100L, 43L, 95L, 37L, 57L, 76L, 58L, 73L, 65L, 38L, 64L, 61L, 52L, 34L, 35L, 47L, 41L, 38L, 64L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 55L, 16L, 48L, 45L, 98L, 42L, 86L, 87L, 138L, 70L, 93L, 90L, 104L, 64L, 37L, 60L, 52L, 61L, 67L, 54L, 51L, 43L, 50L, 59L, 43L, 49L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(18L, 45L, 9L, 101L, 40L, 98L, 69L, 93L, 49L, 83L, 58L, 104L, 64L, 60L, 61L, 44L, 4L, 56L, 54L, 67L, 37L, 57L, 29L, 53L, 34L, 32L, 32L, 44L, 40L, 13L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 46L, 0L, 24L, 0L, 41L, 0L, 82L, 45L, 41L, 48L, 74L, 17L, 50L, 83L, 12L, 40L, 18L, 55L, 34L, 49L, 42L, 60L, 61L, 55L, 48L, 65L, 66L, 29L, 33L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(0L, 0L, 9L, 80L, 50L, 73L, 67L, 78L, 50L, 76L, 52L, 90L, 48L, 73L, 52L, 68L, 57L, 63L, 43L, 57L, 41L, 46L, 39L, 48L, 34L, 39L, 25L, 41L, 15L, 37L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 14L, 9L, 69L, 31L, 69L, 59L, 77L, 58L, 45L, 59L, 107L, 41L, 83L, 57L, 59L, 40L, 56L, 50L, 52L, 50L, 55L, 43L, 47L, 31L, 41L, 46L, 31L, 16L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 19L, 0L, 0L, 0L, 52L, 16L, 17L, 33L, 49L, 25L, 52L, 38L, 5L, 30L, 30L, 17L, 41L, 34L, 5L, 32L, 30L, 14L, 0L, 43L, 0L, 6L, 0L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(19L, 44L, 23L, 79L, 18L, 46L, 71L, 86L, 61L, 34L, 24L, 72L, 36L, 58L, 64L, 28L, 25L, 34L, 48L, 56L, 33L, 39L, 15L, 20L, 17L, 52L, 22L, 7L, 17L, 0L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 18L, 59L, 77L, 34L, 21L, 12L, 78L, 64L, 62L, 50L, 45L, 49L, 54L, 34L, 33L, 44L, 21L, 22L, 41L, 23L, 30L, 30L, 20L, 16L, 12L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(18L, 46L, 55L, 64L, 31L, 57L, 52L, 103L, 50L, 80L, 62L, 85L, 37L, 64L, 54L, 30L, 0L, 48L, 43L, 51L, 39L, 27L, 46L, 32L, 37L, 36L, 49L, 31L, 22L, 32L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 23L, 39L, 53L, 32L, 45L, 60L, 77L, 44L, 77L, 57L, 91L, 41L, 73L, 46L, 31L, 20L, 56L, 38L, 30L, 47L, 22L, 21L, 37L, 34L, 14L, 30L, 24L, 19L, 32L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 32L, 52L, 91L, 35L, 73L, 59L, 102L, 61L, 100L, 65L, 102L, 67L, 74L, 79L, 60L, 67L, 56L, 54L, 56L, 55L, 58L, 28L, 47L, 33L, 32L, 12L, 45L, 17L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 49L, 55L, 42L, 55L, 61L, 69L, 57L, 80L, 23L, 108L, 50L, 63L, 56L, 51L, 43L, 60L, 47L, 25L, 59L, 34L, 36L, 40L, 36L, 14L, 43L, 44L, 19L, 24L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 2L, 35L, 0L, 42L, 44L, 57L, 6L, 0L, 68L, 65L, 35L, 72L, 48L, 61L, 35L, 53L, 47L, 58L, 29L, 32L, 51L, 34L, 38L, 19L, 33L, 0L, 42L, 0L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 22L, 0L, 20L, 19L, 18L, 20L, 21L, 17L, 33L, 13L, 20L, 10L, 17L, 20L, 16L, 13L, 17L, 14L, 15L, 12L, 12L, 13L, 8L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 31L, 52L, 42L, 41L, 72L, 69L, 49L, 47L, 52L, 22L, 48L, 20L, 35L, 40L, 25L, 15L, 25L, 28L, 38L, 52L, 61L, 46L, 45L, 35L, 29L, 52L, 32L, 36L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 46L, 48L, 47L, 42L, 26L, 11L, 37L, 19L, 7L, 17L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(0L, 54L, 55L, 54L, 76L, 50L, 48L, 65L, 54L, 64L, 20L, 38L, 44L, 77L, 26L, 39L, 0L, 62L, 31L, 45L, 56L, 73L, 49L, 54L, 37L, 45L, 24L, 32L, 47L, 24L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 11L, 0L, 20L, 10L, 0L, 33L, 16L, 29L, 28L, 22L, 16L, 0L, 0L, 16L, 9L, 0L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 113L, 32L, 52L, 51L, 42L, 75L, 23L, 31L, 24L, 47L, 13L, 43L, 9L, 46L, 41L, 42L, 45L, 69L, 65L, 51L, 35L, 41L, 26L, 35L, 49L, 17L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 24L, 42L, 51L, 31L, 52L, 53L, 32L, 40L, 17L, 21L, 30L, 33L, 22L, 39L, 15L, 40L, 24L, 47L, 35L, 53L, 22L, 30L, 29L, 26L, 24L, 29L, 25L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 31L, 53L, 17L, 34L, 34L, 24L, 28L, 33L, 30L, 21L, 22L, 7L, 28L, 26L, 29L, 38L, 49L, 36L, 28L, 31L, 27L, 25L, 39L, 20L, 35L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 20L, 0L, 0L, 25L, 63L, 35L, 34L, 42L, 29L, 42L, 28L, 61L, 29L, 41L, 48L, 52L, 55L, 42L, 48L, 26L, 39L, 35L, 33L, 35L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 53L, 21L, 28L, 35L, 27L, 24L, 32L, 26L, 45L, 24L, 39L, 21L, 70L, 19L, 37L, 44L, 43L, 27L, 31L, 41L, 19L, 27L, 26L, 40L, 23L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 31L, 36L, 27L, 53L, 39L, 47L, 52L, 32L, 45L, 24L, 49L, 29L, 38L, 16L, 33L, 8L, 16L, 20L, 29L, 43L, 70L, 34L, 28L, 25L, 18L, 20L, 28L, 39L, 15L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 56L, 31L, 54L, 50L, 46L, 59L, 48L, 45L, 33L, 24L, 68L, 26L, 27L, 31L, 18L, 45L, 24L, 47L, 35L, 51L, 54L, 38L, 43L, 45L, 31L, 52L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 35L, 46L, 47L, 68L, 46L, 63L, 68L, 66L, 65L, 60L, 58L, 36L, 55L, 47L, 26L, 33L, 19L, 32L, 49L, 58L, 45L, 39L, 56L, 60L, 42L, 54L, 42L, 13L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 11L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 22L, 12L, 15L, 16L, 21L, 18L, 19L, 18L, 18L, 42L, 50L, 65L, 17L, 47L, 37L, 40L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 19L, 0L, 65L, 18L, 41L, 56L, 59L, 55L, 60L, 63L, 51L, 22L, 74L, 28L, 37L, 42L, 23L, 35L, 32L, 67L, 35L, 46L, 42L, 42L, 41L, 29L, 48L, 37L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 5L, 46L, 12L, 25L, 12L, 15L, 4L, 0L, 0L, 11L, 2L, 4L, 0L, 5L, 0L, 12L, 13L, 5L, 10L, 14L, 9L, 9L, 16L, 10L, 7L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 33L, 22L, 34L, 27L, 34L, 20L, 48L, 57L, 34L, 52L, 47L, 58L, 21L, 47L, 53L, 64L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 11L, 0L, 0L, 0L, 15L, 0L, 8L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 0L, 34L, 4L, 0L, 22L, 38L, 17L, 26L, 20L, 27L, 32L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 18L, 52L, 51L, 52L, 54L, 66L, 52L, 48L, 47L, 38L, 38L, 36L, 28L, 36L, 12L, 32L, 21L, 7L, 16L, 29L, 51L, 19L, 44L, 35L, 43L, 35L, 36L, 24L, 55L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 36L, 25L, 28L, 13L, 14L, 28L, 9L, 14L, 14L, 6L, 11L, 28L, 45L, 20L, 28L, 33L, 39L, 25L, 37L, 33L, 42L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 41L, 12L, 44L, 32L, 38L, 38L, 15L, 56L, 24L, 24L, 20L, 23L, 31L, 51L, 54L, 22L, 40L, 36L, 46L, 20L, 23L, 36L, 40L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 19L, 21L, 64L, 0L, 40L, 9L, 39L, 13L, 19L, 8L, 9L, 0L, 35L, 20L, 9L, 16L, 12L, 19L, 3L, 9L, 4L, 8L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 78L, 0L, 18L, 21L, 21L, 57L, 30L, 40L, 49L, 47L, 46L, 38L, 48L, 40L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 27L, 75L, 43L, 60L, 72L, 68L, 51L, 56L, 20L, 65L, 43L, 44L, 37L, 39L, 38L, 37L, 43L, 59L, 57L, 39L, 65L, 32L, 44L, 54L, 38L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 65L, 20L, 51L, 44L, 43L, 51L, 46L, 38L, 42L, 38L, 35L, 25L, 29L, 21L, 18L, 13L, 12L, 20L, 25L, 35L, 24L, 42L, 32L, 39L, 14L, 40L, 17L, 24L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(24L, 49L, 18L, 6L, 41L, 57L, 40L, 51L, 56L, 55L, 5L, 43L, 30L, 6L, 6L, 19L, 0L, 1L, 0L, 0L, 6L, 6L, 7L, 8L, 14L, 8L, 14L, 12L, 0L, 15L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 38L, 19L, 45L, 88L, 13L, 39L, 50L, 45L, 45L, 20L, 40L, 27L, 38L, 13L, 14L, 7L, 0L, 0L, 0L, 42L, 5L, 6L, 3L, 1L, 17L, 16L, 8L, 0L, 15L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 64L, 28L, 23L, 9L, 22L, 6L, 0L, 12L, 3L, 0L, 0L, 0L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 18L, 0L, 0L, 43L, 26L, 36L, 26L, 25L, 6L, 20L, 9L, 20L, 22L, 29L, 17L, 24L, 43L, 16L, 4L, 27L, 0L, 6L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 13L, 29L, 36L, 30L, 38L, 5L, 53L, 38L, 11L, 58L, 31L, 23L, 8L, 22L, 32L, 7L, 11L, 8L, 29L, 13L, 13L, 1L, 11L, 22L, 44L, 24L, 35L, 0L, 25L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 33L, 49L, 29L, 64L, 22L, 41L, 44L, 43L, 11L, 4L, 42L, 32L, 27L, 35L, 29L, 33L, 5L, 14L, 8L, 39L, 13L, 12L, 0L, 13L, 9L, 3L, 47L, 0L, 10L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 46L, 0L, 0L, 0L, 51L, 46L, 12L, 31L, 30L, 20L, 24L, 10L, 22L, 11L, 0L, 4L, 2L, 7L, 3L, 6L, 0L, 13L, 10L, 8L, 2L, 0L, 44L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(19L, 34L, 15L, 62L, 61L, 38L, 50L, 48L, 36L, 33L, 28L, 43L, 41L, 25L, 25L, 21L, 14L, 17L, 25L, 31L, 27L, 6L, 17L, 7L, 38L, 26L, 22L, 39L, 0L, 33L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(39L, 34L, 11L, 17L, 22L, 2L, 0L, 66L, 70L, 42L, 16L, 48L, 30L, 15L, 2L, 50L, 19L, 9L, 36L, 48L, 9L, 0L, 0L, 0L, 74L, 22L, 20L, 32L, 0L, 9L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(15L, 40L, 27L, 23L, 18L, 8L, 35L, 22L, 6L, 2L, 26L, 24L, 12L, 3L, 2L, 3L, 0L, 0L, 0L, 0L, 4L, 0L, 1L, 2L, 63L, 36L, 30L, 22L, 0L, 19L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 5L, 17L, 39L, 36L, 10L, 0L, 31L, 38L, 23L, 15L, 1L, 47L, 7L, 9L, 6L, 3L, 23L, 12L, 1L, 6L, 5L, 8L, 29L, 0L, 8L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 42L, 49L, 6L, 0L, 41L, 35L, 12L, 35L, 16L, 24L, 12L, 15L, 19L, 32L, 33L, 6L, 13L, 42L, 17L, 4L, 39L, 0L, 12L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 69L, 33L, 24L, 47L, 36L, 50L, 35L, 40L, 40L, 33L, 30L, 20L, 34L, 9L, 4L, 4L, 7L, 44L, 18L, 20L, 23L, 32L, 41L, 36L, 58L, 0L, 23L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 40L, 29L, 19L, 17L, 46L, 29L, 31L, 25L, 13L, 17L, 5L, 0L, 0L, 37L, 7L, 4L, 1L, 12L, 39L, 38L, 28L, 0L, 45L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 7L, 0L, 0L, 27L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 13L, 23L, 28L, 12L, 30L, 24L, 21L, 16L, 0L, 66L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 55L, 32L, 19L, 21L, 35L, 42L, 25L, 45L, 47L, 26L, 31L, 37L, 23L, 7L, 17L, 7L, 23L, 17L, 21L, 37L, 10L, 46L, 13L, 15L, 40L, 0L, 34L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 57L, 42L, 62L, 29L, 49L, 42L, 29L, 30L, 45L, 5L, 34L, 11L, 36L, 10L, 38L, 10L, 6L, 9L, 34L, 12L, 24L, 26L, 37L, 26L, 29L, 32L, 34L, 28L, 31L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 12L, 15L, 0L, 0L, 0L, 14L, 23L, 10L, 15L, 16L, 4L, 9L, 27L, 23L, 14L, 10L, 19L, 12L, 8L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 31L, 41L, 10L, 35L, 32L, 30L, 40L, 9L, 31L, 22L, 27L, 18L, 15L, 6L, 26L, 15L, 9L, 16L, 23L, 13L, 17L, 16L, 22L, 7L, 9L, 14L, 11L, 2L, 4L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 80L, 0L, 20L, 64L, 41L, 81L, 25L, 8L, 18L, 15L, 33L, 32L, 26L, 33L, 8L, 3L, 10L, 28L, 9L, 18L, 13L, 15L, 13L, 5L, 1L, 7L, 5L, 6L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 16L, 75L, 29L, 49L, 57L, 15L, 7L, 49L, 67L, 40L, 30L, 53L, 43L, 23L, 15L, 8L, 45L, 21L, 36L, 33L, 48L, 20L, 34L, 31L, 36L, 19L, 30L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 67L, 17L, 49L, 53L, 67L, 51L, 59L, 42L, 40L, 46L, 54L, 22L, 38L, 22L, 49L, 15L, 42L, 18L, 38L, 16L, 33L, 3L, 35L, 21L, 5L, 25L, 37L, 15L, 27L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 72L, 18L, 54L, 49L, 35L, 69L, 47L, 33L, 2L, 68L, 31L, 7L, 43L, 39L, 28L, 31L, 28L, 32L, 10L, 21L, 6L, 20L, 16L, 6L, 13L, 14L, 11L, 8L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 15L, 38L, 43L, 85L, 38L, 89L, 80L, 48L, 39L, 56L, 26L, 30L, 27L, 26L, 24L, 19L, 21L, 30L, 24L, 21L, 33L, 25L, 26L, 13L, 26L, 23L, 26L, 18L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 1L, 21L, 11L, 9L, 12L, 54L, 21L, 14L, 7L, 47L, 11L, 15L, 3L, 31L, 12L, 0L, 17L, 17L, 11L, 14L, 7L, 14L, 13L, 31L, 20L, 28L, 19L, 10L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 22L, 63L, 11L, 11L, 42L, 14L, 17L, 26L, 24L, 8L, 20L, 9L, 32L, 20L, 26L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 59L, 28L, 25L, 42L, 17L, 19L, 4L, 9L, 64L, 38L, 44L, 44L, 33L, 35L, 11L, 7L, 23L, 15L, 17L, 8L, 20L, 9L, 9L, 16L, 18L, 10L, 13L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 65L, 43L, 35L, 13L, 16L, 37L, 2L, 1L, 47L, 31L, 30L, 21L, 28L, 22L, 13L, 2L, 31L, 6L, 33L, 1L, 29L, 23L, 39L, 2L, 51L, 22L, 37L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(30L, 21L, 45L, 48L, 43L, 51L, 33L, 42L, 30L, 29L, 15L, 51L, 12L, 24L, 13L, 18L, 17L, 23L, 5L, 25L, 8L, 21L, 22L, 29L, 18L, 15L, 26L, 17L, 4L, 13L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 14L, 0L, 0L, 0L, 0L, 0L, 0L, 18L, 0L, 20L, 0L, 21L, 0L, 22L, 0L, 6L, 9L, 18L, 14L, 15L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(30L, 37L, 31L, 21L, 42L, 33L, 42L, 51L, 52L, 41L, 19L, 41L, 15L, 35L, 30L, 48L, 9L, 35L, 5L, 40L, 13L, 18L, 27L, 42L, 24L, 21L, 22L, 21L, 25L, 16L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 21L, 0L, 0L, 0L, 51L, 0L, 17L, 0L, 18L, 33L, 21L, 22L, 21L, 19L, 17L, 21L, 21L, 6L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 43L, 22L, 13L, 10L, 35L, 28L, 4L, 40L, 28L, 22L, 1L, 10L, 9L, 16L, 22L, 26L, 22L, 14L, 31L, 23L, 36L, 28L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 4L, 20L, 0L, 12L, 0L, 14L, 65L, 40L, 1L, 6L, 0L, 0L, 7L, 8L, 52L, 7L, 2L, 2L, 66L, 57L, 54L, 33L, 49L, 25L, 37L, 40L, 35L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(46L, 17L, 64L, 105L, 56L, 76L, 21L, 124L, 28L, 71L, 56L, 0L, 10L, 0L, 0L, 2L, 8L, 2L, 11L, 0L, 1L, 51L, 43L, 4L, 24L, 45L, 12L, 41L, 30L, 45L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(6L, 11L, 36L, 55L, 27L, 26L, 1L, 69L, 31L, 4L, 1L, 5L, 0L, 0L, 0L, 0L, 0L, 2L, 30L, 0L, 0L, 18L, 20L, 17L, 24L, 7L, 37L, 8L, 0L, 12L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(5L, 61L, 101L, 67L, 54L, 87L, 6L, 112L, 59L, 39L, 25L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 16L, 37L, 10L, 28L, 4L, 32L, 39L, 33L, 10L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 53L, 15L, 92L, 30L, 42L, 73L, 97L, 46L, 65L, 28L, 0L, 0L, 0L, 0L, 5L, 0L, 28L, 0L, 6L, 0L, 36L, 49L, 17L, 33L, 25L, 35L, 19L, 33L, 39L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 8L, 40L, 54L, 63L, 48L, 28L, 23L, 9L, 0L, 0L, 0L, 0L, 0L, 12L, 3L, 0L, 0L, 0L, 32L, 39L, 16L, 58L, 16L, 61L, 56L, 65L, 27L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 49L, 56L, 55L, 49L, 31L, 16L, 0L, 1L, 6L, 3L, 5L, 3L, 4L, 1L, 0L, 8L, 21L, 33L, 18L, 21L, 30L, 23L, 28L, 24L, 32L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 23L, 0L, 0L, 46L, 0L, 0L, 15L, 0L, 0L, 0L, 45L, 3L, 42L, 44L, 34L, 56L, 47L, 56L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 2L, 2L, 0L, 0L, 0L, 30L, 29L, 32L, 4L, 0L, 23L, 0L, 0L, 12L, 42L, 8L, 0L, 0L, 0L, 45L, 39L, 3L, 13L, 52L, 32L, 40L, 40L, 22L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 6L, 0L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 40L, 5L, 26L, 23L, 0L, 1L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 63L, 62L, 58L, 65L, 88L, 76L, 85L, 67L, 79L, 74L, 3L, 0L, 0L, 10L, 5L, 35L, 5L, 3L, 0L, 5L, 36L, 45L, 27L, 33L, 41L, 6L, 43L, 30L, 11L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(30L, 57L, 54L, 83L, 49L, 68L, 57L, 71L, 37L, 70L, 55L, 0L, 0L, 0L, 35L, 18L, 0L, 7L, 5L, 0L, 4L, 45L, 33L, 39L, 36L, 46L, 34L, 15L, 16L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 2L, 44L, 19L, 48L, 46L, 59L, 48L, 13L, 0L, 12L, 17L, 0L, 14L, 6L, 21L, 17L, 0L, 0L, 2L, 22L, 19L, 20L, 10L, 23L, 8L, 16L, 29L, 19L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(38L, 37L, 49L, 100L, 39L, 125L, 65L, 42L, 63L, 54L, 97L, 32L, 93L, 29L, 92L, 40L, 88L, 27L, 45L, 92L, 26L, 44L, 27L, 37L, 77L, 78L, 42L, 77L, 65L, 81L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(69L, 60L, 41L, 102L, 37L, 112L, 66L, 32L, 55L, 54L, 77L, 24L, 71L, 30L, 66L, 23L, 49L, 19L, 20L, 53L, 11L, 22L, 12L, 13L, 36L, 61L, 48L, 77L, 62L, 51L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(35L, 61L, 36L, 102L, 36L, 112L, 74L, 46L, 72L, 68L, 82L, 38L, 104L, 32L, 103L, 40L, 92L, 33L, 44L, 58L, 20L, 88L, 28L, 41L, 53L, 22L, 2L, 0L, 0L, 4L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 107L, 28L, 98L, 64L, 44L, 68L, 58L, 81L, 47L, 97L, 51L, 80L, 60L, 107L, 55L, 63L, 87L, 33L, 78L, 29L, 41L, 63L, 32L, 43L, 27L, 22L, 44L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(44L, 61L, 40L, 88L, 29L, 91L, 60L, 20L, 53L, 40L, 95L, 74L, 88L, 36L, 36L, 60L, 111L, 45L, 53L, 66L, 25L, 36L, 21L, 16L, 60L, 44L, 40L, 57L, 38L, 51L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 9L, 9L, 40L, 76L, 68L, 46L, 71L, 49L, 79L, 40L, 93L, 18L, 102L, 37L, 85L, 38L, 57L, 90L, 32L, 80L, 19L, 50L, 72L, 34L, 28L, 56L, 32L, 52L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 34L, 37L, 69L, 71L, 45L, 54L, 72L, 73L, 39L, 115L, 30L, 112L, 33L, 124L, 62L, 74L, 122L, 40L, 110L, 39L, 73L, 79L, 79L, 42L, 67L, 57L, 44L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 22L, 72L, 28L, 58L, 80L, 69L, 56L, 51L, 62L, 42L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(9L, 42L, 47L, 92L, 30L, 112L, 42L, 44L, 61L, 60L, 68L, 31L, 76L, 15L, 69L, 0L, 63L, 22L, 26L, 44L, 28L, 36L, 22L, 14L, 62L, 63L, 22L, 64L, 49L, 62L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 104L, 38L, 50L, 62L, 47L, 30L, 48L, 30L, 36L, 46L, 42L, 31L, 38L, 33L, 40L, 44L, 61L, 65L, 64L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 31L, 69L, 55L, 67L, 68L, 47L, 56L, 66L, 54L, 53L, 48L, 57L, 35L, 31L, 38L, 53L, 41L, 46L, 48L, 37L, 70L, 53L, 53L, 55L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 6L, 0L, 70L, 66L, 41L, 65L, 49L, 53L, 62L, 56L, 43L, 49L, 50L, 38L, 44L, 29L, 34L, 37L, 49L, 24L, 38L, 32L, 26L, 32L, 28L, 65L, 42L, 54L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(45L, 62L, 61L, 63L, 74L, 74L, 75L, 90L, 63L, 83L, 49L, 44L, 59L, 59L, 45L, 31L, 30L, 28L, 32L, 22L, 23L, 28L, 25L, 27L, 29L, 48L, 16L, 52L, 33L, 44L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(29L, 47L, 63L, 47L, 60L, 47L, 58L, 52L, 48L, 49L, 46L, 50L, 34L, 22L, 20L, 24L, 13L, 0L, 18L, 7L, 14L, 10L, 3L, 0L, 7L, 7L, 24L, 22L, 35L, 31L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 14L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 7L, 6L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 68L, 37L, 60L, 61L, 55L, 53L, 34L, 46L, 28L, 43L, 28L, 34L, 18L, 0L, 32L, 12L, 21L, 22L, 18L, 7L, 30L, 51L, 30L, 35L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 9L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 72L, 26L, 53L, 77L, 60L, 51L, 54L, 39L, 55L, 47L, 39L, 41L, 39L, 40L, 20L, 25L, 34L, 27L, 21L, 23L, 25L, 0L, 48L, 47L, 33L, 48L, 61L, 53L, 62L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 29L, 0L, 19L, 0L, 0L, 0L, 61L, 30L, 51L, 44L, 57L, 54L, 58L, 37L, 34L, 45L, 27L, 38L, 24L, 47L, 37L, 23L, 23L, 40L, 37L, 40L, 38L, 43L, 22L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 27L, 34L, 47L, 0L, 0L, 0L, 0L, 70L, 5L, 23L, 30L, 31L, 34L, 0L, 12L, 6L, 13L, 7L, 13L, 4L, 0L, 0L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 2L, 0L, 0L, 27L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 25L, 20L, 41L, 61L, 48L, 67L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 107L, 49L, 48L, 52L, 52L, 51L, 71L, 58L, 56L, 52L, 63L, 52L, 58L, 42L, 34L, 35L, 35L, 24L, 37L, 33L, 23L, 26L, 10L, 13L, 62L, 46L, 52L, 44L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 14L, 0L, 0L, 43L, 37L, 44L, 45L, 43L, 47L, 54L, 42L, 44L, 33L, 37L, 40L, 35L, 31L, 36L, 22L, 36L, 21L, 30L, 18L, 31L, 48L, 46L, 59L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 5L, 60L, 45L, 38L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 11L, 0L, 0L, 30L, 53L, 54L, 45L, 54L, 61L, 40L, 47L, 31L, 39L, 29L, 39L, 31L, 38L, 28L, 34L, 28L, 22L, 28L, 22L, 33L, 33L, 41L, 59L, 61L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(42L, 50L, 55L, 37L, 61L, 53L, 54L, 68L, 52L, 50L, 41L, 47L, 37L, 27L, 36L, 29L, 22L, 14L, 32L, 28L, 23L, 25L, 18L, 22L, 7L, 32L, 33L, 50L, 49L, 54L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 75L, 28L, 52L, 52L, 55L, 50L, 43L, 42L, 40L, 30L, 30L, 26L, 17L, 28L, 21L, 16L, 23L, 17L, 23L, 25L, 17L, 16L, 27L, 12L, 32L, 43L, 41L, 39L, 41L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 68L, 18L, 31L, 38L, 32L, 44L, 44L, 43L, 33L, 24L, 25L, 27L, 20L, 20L, 21L, 21L, 13L, 12L, 15L, 18L, 20L, 24L, 19L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 34L, 66L, 47L, 63L, 61L, 75L, 62L, 61L, 61L, 34L, 46L, 30L, 31L, 38L, 23L, 20L, 20L, 20L, 11L, 19L, 13L, 10L, 0L, 3L, 18L, 40L, 39L, 47L, 64L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 79L, 83L, 38L, 39L, 70L, 58L, 37L, 47L, 44L, 54L, 14L, 44L, 29L, 45L, 21L, 40L, 30L, 34L, 26L, 29L, 18L, 41L, 52L, 53L, 66L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 104L, 50L, 55L, 65L, 61L, 54L, 68L, 59L, 56L, 54L, 61L, 45L, 40L, 30L, 47L, 38L, 36L, 34L, 45L, 35L, 23L, 38L, 28L, 50L, 42L, 48L, 41L, 33L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 72L, 40L, 42L, 60L, 62L, 56L, 54L, 31L, 48L, 47L, 42L, 31L, 34L, 36L, 38L, 43L, 37L, 36L, 43L, 31L, 40L, 49L, 58L, 57L, 69L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 24L, 0L, 79L, 38L, 43L, 68L, 51L, 50L, 44L, 39L, 46L, 30L, 51L, 45L, 34L, 44L, 35L, 23L, 36L, 31L, 20L, 24L, 6L, 28L, 20L, 50L, 45L, 60L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 30L, 65L, 57L, 52L, 49L, 39L, 52L, 44L, 43L, 41L, 41L, 35L, 38L, 33L, 36L, 39L, 33L, 31L, 32L, 19L, 17L, 32L, 23L, 21L, 7L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 30L, 51L, 42L, 44L, 48L, 64L, 50L, 55L, 52L, 41L, 39L, 30L, 28L, 28L, 28L, 19L, 32L, 23L, 10L, 27L, 22L, 17L, 26L, 15L, 17L, 33L, 26L, 36L, 32L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 51L, 32L, 31L, 54L, 38L, 35L, 41L, 34L, 30L, 32L, 17L, 30L, 20L, 22L, 21L, 19L, 5L, 27L, 17L, 22L, 46L, 66L, 72L, 86L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 87L, 30L, 30L, 56L, 37L, 58L, 55L, 42L, 30L, 34L, 18L, 34L, 32L, 25L, 23L, 25L, 13L, 11L, 5L, 5L, 15L, 10L, 12L, 32L, 39L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 119L, 40L, 34L, 67L, 50L, 53L, 54L, 63L, 79L, 53L, 53L, 45L, 60L, 62L, 44L, 53L, 42L, 36L, 39L, 65L, 31L, 41L, 37L, 34L, 37L, 48L, 53L, 39L, 38L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 11L, 50L, 35L, 44L, 64L, 57L, 49L, 35L, 52L, 43L, 34L, 52L, 35L, 47L, 26L, 38L, 33L, 29L, 39L, 29L, 27L, 39L, 40L, 52L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 61L, 36L, 40L, 56L, 63L, 71L, 46L, 62L, 49L, 47L, 50L, 51L, 23L, 30L, 39L, 26L, 0L, 81L, 24L, 17L, 20L, 33L, 25L, 28L, 34L, 30L, 41L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(17L, 62L, 59L, 33L, 51L, 33L, 56L, 62L, 47L, 35L, 53L, 18L, 53L, 36L, 36L, 50L, 28L, 31L, 20L, 37L, 30L, 36L, 28L, 23L, 35L, 21L, 2L, 45L, 50L, 40L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(8L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 13L, 49L, 44L, 42L, 47L, 29L, 44L, 30L, 27L, 25L, 21L, 24L, 26L, 15L, 13L, 20L, 11L, 18L, 13L, 22L, 33L, 59L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 44L, 39L, 50L, 28L, 52L, 40L, 62L, 35L, 61L, 42L, 50L, 30L, 45L, 33L, 30L, 48L, 32L, 45L, 20L, 37L, 40L, 22L, 28L, 27L, 30L, 8L, 40L, 25L, 53L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 10L, 0L, 0L, 18L, 9L, 0L, 0L, 0L, 13L, 0L, 0L, 7L, 11L, 0L, 0L, 9L, 0L, 0L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 14L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 58L, 47L, 70L, 50L, 51L, 42L, 30L, 44L, 30L, 47L, 30L, 47L, 24L, 34L, 25L, 17L, 30L, 27L, 17L, 20L, 21L, 13L, 6L, 15L, 11L, 10L, 0L, 0L, 6L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 4L, 2L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 11L, 0L, 0L, 14L, 0L, 0L, 58L, 7L, 35L, 43L, 44L, 33L, 37L, 33L, 28L, 11L, 39L, 10L, 26L, 20L, 21L, 23L, 15L, 17L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(6L, 71L, 77L, 52L, 83L, 52L, 61L, 75L, 40L, 43L, 55L, 38L, 45L, 28L, 39L, 30L, 27L, 0L, 56L, 13L, 13L, 31L, 21L, 17L, 19L, 21L, 19L, 18L, 45L, 47L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 28L, 55L, 72L, 49L, 65L, 68L, 61L, 45L, 39L, 58L, 41L, 37L, 39L, 35L, 37L, 33L, 36L, 37L, 35L, 35L, 40L, 37L, 41L, 46L, 41L, 45L, 47L, 54L, 42L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 13L, 34L, 38L, 42L, 40L, 39L, 29L, 26L, 17L, 27L, 27L, 20L, 0L, 33L, 10L, 10L, 15L, 17L, 24L, 38L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 32L, 57L, 31L, 52L, 87L, 46L, 42L, 48L, 61L, 18L, 45L, 46L, 45L, 42L, 29L, 34L, 34L, 42L, 32L, 24L, 13L, 44L, 52L, 56L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 34L, 37L, 31L, 40L, 23L, 40L, 29L, 32L, 41L, 16L, 30L, 26L, 30L, 30L, 26L, 37L, 45L, 54L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 12L, 49L, 41L, 41L, 14L, 46L, 51L, 49L, 45L, 44L, 30L, 38L, 43L, 45L, 47L, 45L, 45L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 22L, 24L, 58L, 38L, 38L, 38L, 50L, 36L, 45L, 35L, 30L, 34L, 34L, 26L, 0L, 79L, 37L, 43L, 46L, 49L, 68L, 67L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 63L, 59L, 55L, 60L, 64L, 78L, 49L, 81L, 49L, 47L, 48L, 20L, 27L, 35L, 29L, 19L, 22L, 26L, 29L, 18L, 16L, 13L, 15L, 17L, 8L, 25L, 27L, 41L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 47L, 26L, 59L, 65L, 65L, 76L, 67L, 52L, 53L, 54L, 48L, 37L, 51L, 32L, 50L, 34L, 31L, 36L, 23L, 37L, 33L, 38L, 40L, 17L, 58L, 53L, 77L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 57L, 48L, 51L, 40L, 44L, 64L, 67L, 54L, 64L, 60L, 33L, 39L, 44L, 21L, 47L, 31L, 35L, 30L, 33L, 30L, 18L, 18L, 21L, 17L, 14L, 12L, 26L, 35L, 42L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 11L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 29L, 42L, 36L, 53L, 55L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 59L, 36L, 50L, 37L, 47L, 44L, 29L, 35L, 37L, 27L, 19L, 34L, 28L, 15L, 24L, 12L, 10L, 9L, 34L, 39L, 53L, 65L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 45L, 42L, 56L, 51L, 43L, 56L, 55L, 62L, 43L, 37L, 36L, 27L, 39L, 21L, 36L, 30L, 21L, 28L, 16L, 14L, 26L, 16L, 20L, 23L, 33L, 37L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 43L, 26L, 57L, 78L, 71L, 41L, 61L, 50L, 36L, 44L, 31L, 35L, 42L, 27L, 20L, 23L, 28L, 16L, 31L, 10L, 8L, 27L, 13L, 15L, 33L, 48L, 46L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 21L, 29L, 9L, 17L, 3L, 9L, 8L, 3L, 0L, 0L, 29L, 23L, 26L, 19L, 0L, 0L, 0L, 3L, 0L, 5L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 3L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 4L, 7L, 55L, 24L, 45L, 54L, 32L, 41L, 37L, 23L, 41L, 36L, 33L, 18L, 30L, 25L, 27L, 16L, 33L, 22L, 23L, 27L, 19L, 26L, 48L, 45L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 8L, 0L, 53L, 50L, 33L, 38L, 34L, 48L, 38L, 40L, 28L, 27L, 16L, 25L, 29L, 19L, 23L, 32L, 25L, 15L, 26L, 22L, 19L, 11L, 45L, 33L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 54L, 40L, 37L, 41L, 25L, 50L, 44L, 52L, 46L, 38L, 25L, 36L, 30L, 29L, 20L, 18L, 16L, 16L, 19L, 0L, 44L, 13L, 19L, 18L, 25L, 14L, 27L, 42L, 34L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 8L, 0L, 35L, 0L, 48L, 110L, 39L, 40L, 44L, 55L, 44L, 52L, 54L, 40L, 47L, 54L, 61L, 46L, 48L, 51L, 56L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 12L, 55L, 56L, 43L, 44L, 48L, 34L, 36L, 35L, 38L, 33L, 24L, 20L, 29L, 31L, 21L, 34L, 19L, 17L, 21L, 15L, 15L, 26L, 33L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 17L, 0L, 0L, 37L, 51L, 24L, 24L, 26L, 35L, 32L, 47L, 42L, 31L, 49L, 36L, 47L, 34L, 31L, 48L, 45L, 30L, 47L, 32L, 47L, 42L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 10L, 0L, 0L, 11L, 0L, 0L, 22L, 0L, 29L, 10L, 24L, 19L, 15L, 22L, 8L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 25L, 30L, 28L, 32L, 18L, 33L, 32L, 11L, 23L, 19L, 17L, 26L, 17L, 32L, 21L, 33L, 22L, 29L, 41L, 61L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 26L, 67L, 40L, 44L, 53L, 51L, 53L, 51L, 40L, 51L, 14L, 41L, 46L, 39L, 46L, 41L, 30L, 41L, 26L, 38L, 23L, 35L, 30L, 27L, 28L, 37L, 32L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 72L, 35L, 44L, 50L, 40L, 56L, 44L, 34L, 52L, 37L, 24L, 46L, 23L, 28L, 22L, 25L, 24L, 13L, 18L, 12L, 7L, 39L, 8L, 31L, 20L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 73L, 34L, 73L, 41L, 64L, 55L, 49L, 56L, 55L, 49L, 48L, 49L, 39L, 41L, 42L, 35L, 40L, 39L, 28L, 56L, 24L, 29L, 32L, 27L, 25L, 19L, 27L, 21L, 28L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 30L, 0L, 3L, 90L, 41L, 65L, 73L, 57L, 64L, 61L, 51L, 61L, 52L, 52L, 42L, 47L, 58L, 45L, 54L, 43L, 44L, 38L, 45L, 33L, 37L, 36L, 35L, 29L, 35L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 24L, 66L, 46L, 64L, 76L, 55L, 72L, 60L, 65L, 59L, 58L, 45L, 50L, 49L, 40L, 40L, 46L, 29L, 41L, 39L, 44L, 30L, 12L, 81L, 23L, 43L, 53L, 36L, 40L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 23L, 48L, 75L, 58L, 51L, 55L, 32L, 40L, 40L, 48L, 42L, 39L, 25L, 45L, 28L, 29L, 26L, 53L, 36L, 24L, 25L, 21L, 30L, 27L, 27L, 31L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 12L, 24L, 76L, 43L, 48L, 56L, 67L, 79L, 57L, 55L, 67L, 45L, 69L, 54L, 41L, 43L, 50L, 27L, 35L, 42L, 30L, 44L, 31L, 32L, 18L, 30L, 35L, 31L, 35L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 7L, 7L, 24L, 30L, 51L, 51L, 36L, 42L, 42L, 55L, 20L, 42L, 18L, 41L, 40L, 30L, 29L, 36L, 59L, 36L, 50L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 46L, 58L, 17L, 58L, 35L, 43L, 53L, 25L, 36L, 53L, 17L, 38L, 22L, 42L, 11L, 16L, 13L, 17L, 0L, 9L, 27L, 0L, 0L, 0L, 26L, 0L, 17L, 3L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(61L, 83L, 100L, 99L, 80L, 81L, 94L, 76L, 65L, 71L, 68L, 43L, 33L, 56L, 63L, 53L, 35L, 32L, 49L, 49L, 27L, 34L, 22L, 31L, 40L, 25L, 30L, 18L, 25L, 12L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 13L, 79L, 30L, 52L, 33L, 32L, 56L, 34L, 36L, 34L, 29L, 32L, 23L, 18L, 12L, 7L, 5L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 11L, 0L, 11L, 11L, 11L, 18L, 33L, 21L, 32L, 30L, 30L, 20L, 32L, 21L, 21L, 24L, 7L, 41L, 14L, 20L, 20L, 31L, 33L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(61L, 109L, 71L, 88L, 72L, 83L, 52L, 95L, 65L, 68L, 51L, 57L, 72L, 56L, 74L, 58L, 60L, 57L, 47L, 67L, 36L, 38L, 50L, 18L, 23L, 19L, 37L, 39L, 35L, 30L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(42L, 40L, 81L, 61L, 65L, 65L, 68L, 51L, 53L, 76L, 57L, 50L, 54L, 52L, 50L, 41L, 46L, 46L, 41L, 42L, 38L, 37L, 31L, 26L, 0L, 34L, 23L, 32L, 24L, 27L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 22L, 0L, 61L, 41L, 80L, 42L, 88L, 35L, 90L, 72L, 66L, 54L, 75L, 49L, 83L, 54L, 47L, 57L, 38L, 42L, 68L, 47L, 57L, 26L, 42L, 21L, 56L, 52L, 43L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 6L, 0L, 0L, 24L, 35L, 19L, 43L, 31L, 48L, 39L, 33L, 47L, 25L, 36L, 43L, 37L, 35L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 79L, 72L, 43L, 59L, 36L, 50L, 37L, 39L, 53L, 22L, 39L, 37L, 31L, 11L, 28L, 38L, 27L, 22L, 19L, 24L, 25L, 46L, 30L, 20L, 33L, 35L, 33L, 34L, 28L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 50L, 24L, 65L, 54L, 40L, 44L, 54L, 65L, 64L, 60L, 38L, 55L, 58L, 44L, 48L, 52L, 26L, 58L, 47L, 37L, 43L, 65L, 35L, 32L, 32L, 24L, 31L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 6L, 17L, 70L, 71L, 57L, 27L, 23L, 51L, 48L, 41L, 60L, 47L, 67L, 61L, 14L, 37L, 37L, 43L, 18L, 30L, 23L, 23L, 44L, 31L, 20L, 28L, 18L, 9L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 94L, 45L, 49L, 42L, 58L, 65L, 50L, 39L, 74L, 60L, 38L, 12L, 35L, 65L, 29L, 51L, 39L, 43L, 47L, 48L, 51L, 59L, 44L, 38L, 36L, 37L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(16L, 35L, 41L, 31L, 74L, 56L, 61L, 59L, 59L, 35L, 55L, 50L, 51L, 63L, 50L, 27L, 43L, 44L, 35L, 32L, 35L, 28L, 30L, 32L, 31L, 24L, 11L, 6L, 21L, 20L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 33L, 29L, 64L, 62L, 72L, 67L, 62L, 78L, 64L, 72L, 55L, 50L, 41L, 59L, 25L, 51L, 71L, 44L, 59L, 41L, 39L, 42L, 39L, 24L, 53L, 36L, 28L, 45L, 37L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 55L, 44L, 45L, 47L, 45L, 59L, 59L, 57L, 56L, 30L, 47L, 54L, 46L, 37L, 29L, 50L, 25L, 21L, 28L, 27L, 47L, 36L, 11L, 28L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 35L, 14L, 69L, 62L, 59L, 103L, 58L, 88L, 68L, 68L, 59L, 46L, 66L, 48L, 54L, 75L, 54L, 49L, 42L, 33L, 51L, 56L, 38L, 50L, 40L, 33L, 41L, 30L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 5L, 9L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 6L, 2L, 0L, 0L, 37L, 22L, 41L, 41L, 47L, 54L, 45L, 47L, 28L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(0L, 0L, 68L, 50L, 61L, 67L, 75L, 66L, 65L, 68L, 57L, 75L, 54L, 51L, 64L, 56L, 67L, 69L, 60L, 54L, 52L, 58L, 38L, 48L, 56L, 55L, 53L, 37L, 52L, 37L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 59L, 37L, 55L, 54L, 61L, 68L, 62L, 77L, 63L, 56L, 48L, 53L, 54L, 41L, 50L, 68L, 32L, 48L, 47L, 24L, 41L, 39L, 46L, 40L, 41L, 34L, 28L, 34L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 46L, 39L, 36L, 65L, 46L, 47L, 61L, 54L, 47L, 67L, 39L, 24L, 58L, 42L, 58L, 41L, 60L, 49L, 39L, 55L, 59L, 50L, 39L, 45L, 51L, 42L, 40L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 19L, 0L, 15L, 49L, 25L, 38L, 25L, 35L, 29L, 41L, 34L, 16L, 7L, 20L, 11L, 6L, 4L, 17L, 10L, 0L, 4L, 17L, 10L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 5L, 0L, 0L, 14L, 8L, 0L, 0L, 0L, 0L, 24L, 0L, 29L, 40L, 38L, 37L, 44L, 47L, 43L, 49L, 37L, 50L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 19L, 34L, 34L, 35L, 48L, 31L, 49L, 57L, 43L, 42L, 49L, 35L, 38L, 28L, 27L, 24L, 37L, 27L, 30L, 18L, 28L, 20L, 0L, 15L, 24L, 14L, 22L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 82L, 82L, 67L, 89L, 90L, 88L, 83L, 71L, 79L, 86L, 46L, 62L, 74L, 67L, 66L, 68L, 65L, 56L, 56L, 59L, 53L, 60L, 41L, 39L, 26L, 40L, 29L, 15L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(46L, 0L, 0L, 0L, 44L, 24L, 52L, 53L, 55L, 57L, 59L, 47L, 52L, 41L, 22L, 46L, 50L, 41L, 44L, 49L, 44L, 44L, 40L, 22L, 50L, 35L, 25L, 18L, 19L, 18L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 109L, 23L, 45L, 60L, 82L, 60L, 60L, 56L, 66L, 39L, 43L, 63L, 50L, 50L, 52L, 51L, 44L, 22L, 48L, 39L, 34L, 42L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(65L, 50L, 55L, 75L, 66L, 76L, 78L, 76L, 66L, 64L, 57L, 61L, 52L, 46L, 58L, 45L, 54L, 41L, 49L, 51L, 43L, 43L, 43L, 57L, 56L, 61L, 44L, 45L, 54L, 42L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 20L, 68L, 24L, 71L, 42L, 50L, 63L, 36L, 54L, 48L, 53L, 51L, 49L, 54L, 47L, 42L, 57L, 38L, 39L, 42L, 32L, 25L, 11L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(34L, 52L, 48L, 43L, 60L, 49L, 51L, 50L, 49L, 48L, 62L, 41L, 45L, 34L, 25L, 42L, 43L, 40L, 39L, 26L, 36L, 27L, 44L, 32L, 20L, 17L, 32L, 35L, 32L, 33L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 30L, 36L, 53L, 47L, 59L, 53L, 34L, 56L, 22L, 98L, 37L, 54L, 47L, 53L, 48L, 41L, 43L, 33L, 51L, 41L, 57L, 37L, 48L, 29L, 0L, 26L, 18L, 18L, 40L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(24L, 28L, 37L, 55L, 50L, 45L, 62L, 52L, 60L, 53L, 66L, 41L, 49L, 44L, 26L, 34L, 39L, 34L, 37L, 31L, 26L, 32L, 32L, 26L, 27L, 25L, 28L, 25L, 17L, 20L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 8L, 43L, 36L, 43L, 63L, 51L, 47L, 38L, 37L, 27L, 34L, 7L, 21L, 12L, 18L, 21L, 0L, 8L, 0L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 78L, 28L, 42L, 47L, 66L, 61L, 56L, 35L, 94L, 47L, 68L, 41L, 52L, 50L, 38L, 46L, 62L, 40L, 50L, 39L, 43L, 48L, 40L, 37L, 30L, 43L, 37L, 24L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(36L, 53L, 66L, 70L, 56L, 71L, 77L, 79L, 76L, 71L, 72L, 43L, 72L, 51L, 59L, 57L, 54L, 56L, 54L, 63L, 58L, 58L, 52L, 39L, 52L, 35L, 38L, 29L, 28L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 55L, 54L, 51L, 64L, 64L, 49L, 51L, 72L, 67L, 66L, 45L, 73L, 37L, 60L, 50L, 38L, 45L, 63L, 58L, 48L, 29L, 72L, 31L, 45L, 41L, 35L, 8L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 93L, 43L, 58L, 82L, 72L, 80L, 81L, 61L, 52L, 55L, 78L, 45L, 69L, 64L, 68L, 59L, 63L, 65L, 62L, 53L, 56L, 52L, 0L, 85L, 9L, 7L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 22L, 0L, 58L, 62L, 26L, 47L, 42L, 39L, 52L, 34L, 70L, 44L, 38L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(31L, 29L, 59L, 73L, 51L, 69L, 57L, 76L, 63L, 74L, 66L, 61L, 36L, 54L, 53L, 34L, 41L, 49L, 45L, 37L, 37L, 34L, 18L, 45L, 29L, 23L, 20L, 10L, 27L, 12L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(61L, 46L, 77L, 81L, 47L, 92L, 66L, 63L, 87L, 62L, 67L, 68L, 56L, 72L, 63L, 57L, 67L, 49L, 55L, 60L, 35L, 31L, 15L, 35L, 31L, 39L, 19L, 15L, 5L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 74L, 56L, 100L, 70L, 84L, 63L, 63L, 84L, 61L, 66L, 66L, 71L, 64L, 49L, 56L, 46L, 59L, 45L, 33L, 40L, 36L, 22L, 51L, 17L, 21L, 5L, 11L, 3L, 5L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 135L, 36L, 69L, 63L, 88L, 76L, 62L, 35L, 53L, 59L, 61L, 59L, 4L, 31L, 54L, 48L, 49L, 43L, 46L, 39L, 30L, 34L, 29L, 26L, 25L, 21L, 18L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(20L, 48L, 49L, 79L, 51L, 69L, 57L, 64L, 73L, 66L, 73L, 66L, 52L, 48L, 48L, 36L, 68L, 47L, 54L, 42L, 35L, 47L, 36L, 26L, 29L, 26L, 17L, 19L, 22L, 13L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 107L, 37L, 45L, 50L, 43L, 42L, 39L, 25L, 33L, 17L, 32L, 19L, 16L, 23L, 17L, 16L, 28L, 12L, 16L, 13L, 8L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(45L, 22L, 68L, 71L, 70L, 70L, 70L, 62L, 71L, 70L, 11L, 72L, 62L, 69L, 65L, 60L, 70L, 58L, 70L, 51L, 62L, 66L, 61L, 65L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 8L, 0L, 46L, 46L, 42L, 44L, 51L, 60L, 55L, 23L, 42L, 48L, 45L, 43L, 54L, 46L, 52L, 51L, 39L, 41L, 42L, 32L, 30L, 28L, 18L, 28L, 26L, 11L, 4L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(39L, 62L, 59L, 72L, 68L, 67L, 45L, 66L, 49L, 62L, 35L, 56L, 60L, 54L, 55L, 22L, 47L, 47L, 56L, 44L, 46L, 37L, 50L, 24L, 41L, 5L, 32L, 10L, 10L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 53L, 36L, 47L, 55L, 44L, 39L, 51L, 49L, 37L, 21L, 39L, 30L, 20L, 24L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(44L, 44L, 61L, 64L, 58L, 62L, 55L, 51L, 69L, 59L, 46L, 52L, 35L, 66L, 34L, 39L, 50L, 42L, 44L, 33L, 36L, 46L, 41L, 0L, 53L, 19L, 5L, 44L, 33L, 24L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 50L, 38L, 46L, 71L, 67L, 35L, 59L, 45L, 57L, 35L, 47L, 64L, 54L, 68L, 59L, 40L, 50L, 64L, 50L, 42L, 36L, 34L, 40L, 44L, 15L, 37L, 7L, 29L, 12L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 19L, 64L, 32L, 49L, 72L, 54L, 73L, 43L, 46L, 43L, 47L, 25L, 41L, 44L, 35L, 40L, 45L, 40L, 39L, 0L, 41L, 14L, 35L, 18L, 5L, 3L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(37L, 65L, 76L, 62L, 64L, 60L, 69L, 74L, 79L, 54L, 40L, 63L, 54L, 52L, 53L, 29L, 40L, 65L, 48L, 51L, 37L, 38L, 48L, 32L, 34L, 29L, 28L, 29L, 34L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 11L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(52L, 44L, 96L, 83L, 101L, 87L, 63L, 85L, 67L, 71L, 65L, 55L, 61L, 57L, 38L, 81L, 55L, 57L, 66L, 36L, 51L, 46L, 34L, 59L, 35L, 29L, 52L, 32L, 27L, 11L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(28L, 63L, 84L, 82L, 92L, 80L, 63L, 66L, 64L, 80L, 63L, 72L, 48L, 47L, 47L, 67L, 65L, 53L, 32L, 51L, 52L, 31L, 52L, 29L, 0L, 52L, 29L, 24L, 24L, 10L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 93L, 32L, 87L, 79L, 81L, 86L, 77L, 80L, 50L, 65L, 36L, 54L, 35L, 45L, 34L, 33L, 26L, 38L, 35L, 30L, 30L, 21L, 38L, 31L, 33L, 14L, 30L, 17L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L, 13L, 49L, 10L, 4L, 6L, 9L, 18L, 9L, 23L, 15L, 0L, 39L, 23L, 11L, 22L, 11L, 23L, 13L, 0L, 0L, 27L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 97L, 47L, 63L, 71L, 70L, 64L, 74L, 44L, 67L, 57L, 39L, 54L, 46L, 11L, 41L, 31L, 39L, 0L, 31L, 13L, 27L, 15L, 17L, 17L, 21L, 9L, 13L, 13L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 95L, 55L, 63L, 84L, 85L, 38L, 74L, 60L, 72L, 39L, 58L, 54L, 53L, 51L, 47L, 48L, 43L, 50L, 40L, 51L, 39L, 43L, 36L, 42L, 21L, 11L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 59L, 80L, 63L, 43L, 52L, 61L, 65L, 36L, 36L, 50L, 36L, 40L, 48L, 24L, 43L, 32L, 38L, 12L, 14L, 28L, 21L, 29L, 28L, 21L, 20L, 35L, 23L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(50L, 76L, 100L, 81L, 116L, 74L, 81L, 88L, 72L, 82L, 73L, 73L, 69L, 79L, 63L, 72L, 49L, 43L, 57L, 39L, 51L, 33L, 30L, 32L, 36L, 31L, 31L, 27L, 13L, 20L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 53L, 63L, 24L, 48L, 64L, 44L, 16L, 46L, 32L, 25L, 35L, 32L, 27L, 21L, 30L, 26L, 30L, 23L, 18L, 28L, 31L, 20L, 32L, 8L, 11L, 22L, 13L, 16L, 17L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 34L, 85L, 34L, 49L, 60L, 60L, 65L, 65L, 56L, 40L, 50L, 31L, 56L, 35L, 22L, 50L, 46L, 47L, 28L, 29L, 17L, 14L, 28L, 5L, 39L, 22L, 32L, 24L, 33L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(63L, 29L, 58L, 73L, 52L, 63L, 79L, 62L, 49L, 43L, 58L, 43L, 38L, 38L, 49L, 26L, 53L, 39L, 32L, 40L, 28L, 44L, 21L, 38L, 29L, 28L, 22L, 14L, 13L, 23L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 56L, 51L, 62L, 62L, 52L, 54L, 46L, 15L, 69L, 49L, 56L, 29L, 38L, 60L, 51L, 42L, 55L, 47L, 46L, 29L, 47L, 34L, 41L, 41L, 29L, 34L, 32L, 15L, 25L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 23L, 85L, 43L, 48L, 53L, 50L, 60L, 67L, 61L, 46L, 54L, 45L, 51L, 49L, 36L, 45L, 46L, 35L, 34L, 46L, 35L, 31L, 24L, 35L, 23L, 48L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(7L, 37L, 46L, 57L, 54L, 62L, 51L, 46L, 48L, 57L, 45L, 38L, 53L, 14L, 44L, 51L, 36L, 33L, 56L, 33L, 37L, 35L, 37L, 27L, 39L, 30L, 35L, 26L, 30L, 27L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 34L, 39L, 43L, 59L, 54L, 60L, 63L, 54L, 58L, 69L, 62L, 61L, 54L, 51L, 49L, 59L, 53L, 43L, 56L, 43L, 56L, 36L, 41L, 42L, 47L, 0L, 15L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 34L, 39L, 43L, 59L, 54L, 60L, 63L, 54L, 58L, 60L, 51L, 51L, 53L, 54L, 54L, 46L, 57L, 48L, 48L, 45L, 44L, 24L, 36L, 10L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 82L, 25L, 77L, 77L, 60L, 63L, 56L, 58L, 55L, 52L, 52L, 38L, 45L, 63L, 58L, 43L, 30L, 40L, 45L, 47L, 44L, 39L, 39L, 40L, 36L, 38L, 30L, 34L, 26L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 51L, 32L, 31L, 18L, 33L, 41L, 24L, 44L, 30L, 39L, 33L, 29L, 28L, 29L, 18L, 30L, 17L, 30L, 11L, 5L, 11L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 16L, 66L, 52L, 50L, 67L, 57L, 52L, 35L, 59L, 61L, 57L, 54L, 50L, 56L, 52L, 56L, 51L, 48L, 54L, 43L, 46L, 43L, 35L, 39L, 28L, 50L, 31L, 21L, 50L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 57L, 35L, 53L, 64L, 61L, 51L, 25L, 52L, 50L, 48L, 42L, 41L, 41L, 34L, 42L, 27L, 35L, 26L, 42L, 19L, 26L, 32L, 28L, 30L, 25L, 27L, 30L, 26L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 32L, 36L, 20L, 69L, 23L, 0L, 69L, 14L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 74L, 51L, 71L, 69L, 91L, 88L, 80L, 66L, 77L, 67L, 70L, 34L, 59L, 72L, 47L, 53L, 62L, 50L, 46L, 60L, 47L, 53L, 48L, 50L, 39L, 51L, 31L, 46L, 41L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 32L, 17L, 42L, 36L, 41L, 43L, 31L, 39L, 41L, 29L, 31L, 14L, 32L, 23L, 22L, 26L, 24L, 28L, 18L, 25L, 19L, 12L, 13L, 11L, 0L, 13L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 30L, 15L, 16L, 31L, 47L, 26L, 35L, 22L, 10L, 57L, 23L, 27L, 28L, 23L, 32L, 27L, 25L, 32L, 14L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 35L, 36L, 46L, 27L, 65L, 57L, 52L, 51L, 51L, 53L, 71L, 45L, 49L, 18L, 44L, 38L, 29L, 35L, 33L, 29L, 36L, 26L, 37L, 26L, 24L, 16L, 30L, 7L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 13L, 65L, 22L, 31L, 46L, 37L, 43L, 31L, 44L, 29L, 20L, 15L, 27L, 14L, 18L, 18L, 15L, 9L, 28L, 11L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 5L, 0L, 6L, 13L, 0L, 0L, 38L, 27L, 46L, 44L, 53L, 56L, 58L, 52L, 39L, 41L, 35L, 24L, 36L, 37L, 33L, 35L, 30L, 25L, 15L, 30L, 30L, 33L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 53L, 72L, 85L, 77L, 62L, 75L, 76L, 73L, 67L, 79L, 76L, 65L, 69L, 61L, 58L, 61L, 60L, 59L, 57L, 59L, 44L, 53L, 58L, 50L, 51L, 49L, 38L, 43L, 49L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 53L, 58L, 36L, 52L, 38L, 53L, 64L, 51L, 41L, 50L, 45L, 32L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(48L, 59L, 77L, 71L, 77L, 71L, 60L, 69L, 76L, 62L, 61L, 46L, 55L, 48L, 60L, 43L, 37L, 39L, 29L, 43L, 42L, 40L, 38L, 31L, 18L, 11L, 4L, 5L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 20L, 14L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 21L, 13L, 46L, 23L, 0L, 8L, 30L, 8L, 42L, 12L, 14L, 22L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 85L, 20L, 46L, 62L, 69L, 55L, 47L, 51L, 42L, 43L, 43L, 45L, 33L, 41L, 39L, 40L, 37L, 31L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 59L, 109L, 19L, 26L, 24L, 36L, 66L, 42L, 41L, 62L, 47L, 48L, 45L, 25L, 50L, 34L, 36L, 27L, 23L, 30L, 30L, 28L, 28L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 41L, 35L, 42L, 50L, 39L, 8L, 0L, 0L, 60L, 46L, 22L, 35L, 51L, 43L, 29L, 40L, 41L, 40L, 34L, 33L, 37L, 31L, 37L, 26L, 33L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 63L, 35L, 53L, 45L, 47L, 60L, 77L, 63L, 52L, 46L, 54L, 53L, 52L, 52L, 16L, 36L, 39L, 5L, 19L, 47L, 8L, 22L, 34L, 45L, 34L, 31L, 39L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 78L, 38L, 59L, 75L, 73L, 65L, 17L, 74L, 48L, 44L, 52L, 35L, 52L, 51L, 52L, 41L, 47L, 54L, 39L, 47L, 40L, 36L, 25L, 37L, 48L, 44L, 34L, 30L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 53L, 32L, 49L, 46L, 52L, 36L, 51L, 39L, 38L, 45L, 42L, 40L, 42L, 25L, 43L, 40L, 33L, 32L, 34L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(18L, 23L, 84L, 56L, 75L, 63L, 68L, 50L, 74L, 56L, 36L, 59L, 50L, 53L, 38L, 39L, 40L, 34L, 21L, 36L, 23L, 34L, 15L, 15L, 11L, 0L, 0L, 0L, 7L, 3L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 55L, 50L, 65L, 58L, 65L, 76L, 69L, 63L, 55L, 56L, 59L, 48L, 54L, 43L, 48L, 43L, 44L, 41L, 48L, 30L, 38L, 38L, 34L, 24L, 26L, 28L, 25L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 36L, 0L, 0L, 0L, 12L, 14L, 44L, 29L, 24L, 48L, 54L, 57L, 51L, 64L, 43L, 42L, 7L, 22L, 24L, 22L, 36L, 34L, 27L, 30L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 7L, 52L, 43L, 51L, 45L, 49L, 53L, 41L, 43L, 59L, 56L, 33L, 45L, 39L, 18L, 44L, 24L, 20L, 30L, 31L, 25L, 11L, 8L, 22L, 17L, 19L, 18L, 18L, 30L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 33L, 48L, 52L, 71L, 62L, 66L, 62L, 63L, 59L, 63L, 56L, 59L, 44L, 17L, 54L, 56L, 49L, 42L, 46L, 40L, 39L, 23L, 16L, 23L, 11L, 25L, 10L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 48L, 35L, 59L, 63L, 63L, 78L, 69L, 66L, 76L, 66L, 70L, 70L, 65L, 75L, 64L, 67L, 64L, 63L, 56L, 55L, 75L, 61L, 57L, 55L, 46L, 57L, 53L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 16L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(32L, 48L, 80L, 67L, 81L, 76L, 80L, 71L, 68L, 73L, 63L, 75L, 64L, 64L, 60L, 67L, 77L, 53L, 52L, 48L, 53L, 43L, 30L, 39L, 44L, 43L, 48L, 37L, 38L, 32L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 11L, 20L, 88L, 37L, 46L, 39L, 50L, 41L, 56L, 36L, 34L, 43L, 22L, 42L, 32L, 33L, 34L, 0L, 5L, 29L, 27L, 18L, 18L, 21L, 10L, 17L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 16L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 75L, 16L, 39L, 41L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 97L, 69L, 99L, 74L, 78L, 86L, 94L, 76L, 60L, 62L, 72L, 25L, 55L, 51L, 44L, 47L, 50L, 49L, 34L, 32L, 53L, 40L, 51L, 30L, 23L, 27L, 36L, 30L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 51L, 26L, 42L, 39L, 49L, 53L, 38L, 48L, 50L, 44L, 53L, 55L, 38L, 47L, 37L, 43L, 50L, 33L, 41L, 43L, 31L, 42L, 29L, 32L, 26L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 63L, 46L, 67L, 33L, 61L, 48L, 36L, 43L, 21L, 37L, 49L, 39L, 36L, 36L, 47L, 39L, 31L, 30L, 27L, 32L, 23L, 38L, 30L, 35L, 34L, 28L, 22L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 0L, 9L, 44L, 31L, 37L, 51L, 40L, 62L, 38L, 41L, 34L, 35L, 35L, 25L, 36L, 21L, 37L, 28L, 32L, 29L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 7L, 0L, 0L, 34L, 44L, 73L, 34L, 38L, 19L, 46L, 64L, 44L, 43L, 42L, 47L, 44L, 29L, 0L, 34L, 12L, 23L, 16L, 19L, 25L, 12L, 20L, 8L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 51L, 30L, 39L, 67L, 64L, 65L, 68L, 63L, 65L, 63L, 57L, 53L, 48L, 44L, 49L, 43L, 48L, 44L, 38L, 25L, 28L, 29L, 36L, 26L, 31L, 13L, 12L, 10L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 46L, 40L, 101L, 64L, 78L, 78L, 68L, 72L, 60L, 47L, 60L, 67L, 53L, 70L, 20L, 48L, 49L, 18L, 22L, 40L, 24L, 26L, 20L, 11L, 32L, 5L, 28L, 11L, 24L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 21L, 46L, 52L, 84L, 81L, 65L, 68L, 60L, 54L, 71L, 51L, 51L, 50L, 54L, 46L, 45L, 43L, 48L, 40L, 28L, 35L, 41L, 44L, 30L, 34L, 34L, 33L, 34L, 41L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 9L, 41L, 32L, 40L, 44L, 34L, 53L, 43L, 61L, 25L, 38L, 5L, 31L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 33L, 28L, 18L, 29L, 37L, 17L, 37L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 12L, 0L, 0L, 7L, 0L, 0L, 0L, 0L, 0L, 13L, 0L, 0L, 0L, 0L, 0L, 21L, 24L, 42L, 35L, 31L, 38L, 28L, 25L, 18L, 24L, 19L, 9L, 13L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 43L, 59L, 73L, 50L, 48L, 28L, 43L, 56L, 40L, 68L, 30L, 49L, 43L, 50L, 40L, 43L, 55L, 42L, 42L, 41L, 41L, 32L, 40L, 30L, 27L, 22L, 22L, 9L, 10L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 37L, 45L, 55L, 36L, 30L, 55L, 32L, 48L, 20L, 39L, 44L, 16L, 39L, 32L, 22L, 18L, 8L, 15L, 13L, 14L, 9L, 5L, 2L, 12L, 13L, 20L, 19L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 59L, 38L, 63L, 61L, 46L, 50L, 47L, 51L, 47L, 11L, 24L, 39L, 32L, 26L, 33L, 35L, 31L, 34L, 27L, 34L, 30L, 25L, 21L, 14L, 24L, 21L, 9L, 17L, 14L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 8L, 53L, 52L, 37L, 28L, 57L, 54L, 71L, 46L, 58L, 60L, 61L, 51L, 44L, 40L, 32L, 28L, 31L, 23L, 23L, 14L, 33L, 18L, 25L, 18L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 60L, 28L, 71L, 39L, 60L, 62L, 55L, 44L, 41L, 44L, 37L, 36L, 27L, 35L, 46L, 35L, 36L, 31L, 27L, 33L, 22L, 19L, 17L, 24L, 8L, 22L, 26L, 24L, 13L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 38L, 26L, 36L, 22L, 32L, 25L, 21L, 28L, 17L, 16L, 6L, 16L, 4L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 21L, 49L, 21L, 26L, 23L, 23L, 35L, 29L, 32L, 22L, 29L, 28L, 28L, 20L, 5L, 20L, 9L, 14L, 7L, 9L, 5L, 4L, 8L, 5L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(34L, 55L, 75L, 79L, 51L, 92L, 75L, 83L, 56L, 65L, 41L, 60L, 47L, 50L, 36L, 43L, 64L, 51L, 38L, 35L, 40L, 32L, 28L, 34L, 28L, 34L, 29L, 36L, 26L, 28L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 21L, 50L, 26L, 40L, 36L, 42L, 43L, 36L, 30L, 24L, 25L, 32L, 29L, 28L, 19L, 34L, 17L, 21L, 16L, 16L, 20L, 21L, 27L, 27L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 25L, 35L, 58L, 36L, 45L, 54L, 53L, 39L, 53L, 45L, 45L, 47L, 35L, 43L, 35L, 45L, 38L, 45L, 29L, 35L, 23L, 32L, 18L, 33L, 35L, 26L, 20L, 26L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 23L, 2L, 97L, 31L, 58L, 51L, 45L, 52L, 50L, 34L, 49L, 34L, 37L, 18L, 38L, 14L, 22L, 25L, 16L, 30L, 19L, 26L, 16L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 6L, 7L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 28L, 0L, 4L, 0L, 13L, 7L, 9L, 0L, 9L, 5L, 10L, 0L, 21L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 38L, 45L, 37L, 68L, 52L, 56L, 46L, 48L, 58L, 48L, 38L, 46L, 50L, 40L, 37L, 36L, 28L, 14L, 34L, 26L, 32L, 14L, 15L, 27L, 15L, 20L, 16L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 49L, 18L, 34L, 34L, 44L, 66L, 38L, 54L, 38L, 49L, 48L, 24L, 27L, 34L, 27L, 30L, 29L, 30L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 25L, 22L, 28L, 62L, 25L, 41L, 38L, 38L, 38L, 42L, 42L, 32L, 31L, 36L, 31L, 20L, 39L, 31L, 32L, 25L, 27L, 19L, 23L, 22L, 22L, 23L, 20L, 21L, 16L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 12L, 35L, 51L, 55L, 57L, 60L, 40L, 43L, 51L, 44L, 50L, 46L, 34L, 54L, 38L, 60L, 30L, 42L, 40L, 53L, 26L, 22L, 26L, 33L, 30L, 24L, 22L, 11L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 12L, 0L, 9L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 3L, 42L, 26L, 5L, 20L, 11L, 34L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 8L, 0L, 0L, 20L, 58L, 47L, 46L, 36L, 42L, 23L, 41L, 16L, 25L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 30L, 36L, 44L, 10L, 14L, 27L, 19L, 11L, 13L, 0L, 20L, 5L, 0L, 0L, 5L, 26L, 0L, 0L, 0L, 25L, 51L, 49L, 45L, 40L, 47L, 34L, 43L, 23L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 51L, 16L, 37L, 33L, 57L, 32L, 67L, 0L, 0L, 0L, 5L, 0L, 0L, 6L, 45L, 0L, 0L, 29L, 62L, 56L, 47L, 22L, 43L, 31L, 34L, 18L, 11L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 42L, 48L, 45L, 47L, 24L, 34L, 33L, 4L, 5L, 13L, 18L, 37L, 0L, 0L, 0L, 11L, 13L, 12L, 28L, 34L, 29L, 33L, 41L, 19L, 19L, 22L, 6L, 21L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 64L, 38L, 19L, 42L, 54L, 38L, 55L, 9L, 27L, 17L, 9L, 12L, 0L, 26L, 25L, 36L, 44L, 54L, 44L, 70L, 57L, 64L, 70L, 61L, 54L, 61L, 44L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(66L, 60L, 67L, 58L, 78L, 39L, 76L, 52L, 8L, 32L, 0L, 0L, 29L, 0L, 25L, 10L, 33L, 13L, 45L, 44L, 63L, 71L, 71L, 66L, 54L, 52L, 43L, 37L, 25L, 24L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 2L, 27L, 22L, 43L, 19L, 4L, 20L, 35L, 28L, 19L, 24L, 23L, 6L, 53L, 25L, 36L, 27L, 32L, 38L, 41L, 21L, 48L, 28L, 31L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 71L, 63L, 97L, 56L, 43L, 79L, 60L, 61L, 43L, 53L, 35L, 43L, 33L, 49L, 27L, 27L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(19L, 55L, 43L, 37L, 57L, 37L, 49L, 16L, 0L, 39L, 0L, 0L, 0L, 0L, 18L, 0L, 12L, 17L, 0L, 38L, 42L, 40L, 36L, 23L, 31L, 25L, 6L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 15L, 0L, 0L, 34L, 29L, 18L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(7L, 30L, 35L, 29L, 37L, 23L, 30L, 20L, 15L, 26L, 2L, 0L, 2L, 3L, 14L, 10L, 11L, 30L, 9L, 12L, 30L, 33L, 12L, 21L, 18L, 17L, 15L, 13L, 18L, 6L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 2L, 61L, 56L, 51L, 45L, 10L, 30L, 43L, 41L, 24L, 42L, 35L, 41L, 19L, 15L, 29L, 28L, 23L, 31L, 38L, 30L, 28L, 48L, 37L, 48L, 43L, 39L, 40L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 4L, 58L, 66L, 53L, 40L, 6L, 35L, 40L, 36L, 25L, 18L, 48L, 37L, 39L, 20L, 31L, 17L, 41L, 57L, 24L, 38L, 33L, 22L, 37L, 37L, 34L, 37L, 19L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(5L, 0L, 0L, 30L, 30L, 27L, 23L, 15L, 16L, 25L, 22L, 21L, 16L, 18L, 15L, 11L, 4L, 0L, 0L, 7L, 5L, 7L, 5L, 4L, 3L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 41L, 34L, 53L, 51L, 51L, 55L, 52L, 53L, 31L, 35L, 46L, 49L, 43L, 42L, 38L, 16L, 35L, 59L, 41L, 45L, 46L, 41L, 53L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 15L, 41L, 19L, 29L, 22L, 30L, 15L, 33L, 25L, 32L, 27L, 26L, 31L, 21L, 33L, 22L, 31L, 17L, 6L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 15L, 24L, 48L, 49L, 38L, 44L, 50L, 39L, 44L, 29L, 36L, 28L, 35L, 33L, 36L, 28L, 27L, 22L, 32L, 27L, 24L, 22L, 20L, 22L, 21L, 27L, 22L, 11L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 27L, 16L, 31L, 28L, 21L, 34L, 15L, 36L, 18L, 26L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 18L, 13L, 0L, 45L, 34L, 43L, 36L, 20L, 26L, 10L, 11L, 20L, 6L, 4L, 19L, 33L, 40L, 38L, 48L, 48L, 41L, 46L, 44L, 41L, 36L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 4L, 47L, 32L, 46L, 41L, 0L, 60L, 25L, 31L, 46L, 48L, 23L, 13L, 35L, 8L, 21L, 27L, 33L, 26L, 38L, 24L, 29L, 46L, 0L, 18L, 0L, 0L, 0L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 33L, 63L, 42L, 59L, 43L, 20L, 41L, 43L, 58L, 51L, 53L, 55L, 52L, 45L, 23L, 25L, 12L, 43L, 37L, 33L, 34L, 37L, 41L, 31L, 44L, 35L, 42L, 27L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 35L, 35L, 60L, 63L, 53L, 76L, 55L, 44L, 34L, 34L, 14L, 14L, 9L, 20L, 13L, 20L, 16L, 22L, 19L, 28L, 10L, 24L, 38L, 43L, 43L, 51L, 53L, 52L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 11L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 16L, 54L, 32L, 35L, 32L, 36L, 36L, 22L, 20L, 28L, 13L, 18L, 11L, 11L, 6L, 20L, 17L, 23L, 18L, 30L, 28L, 50L, 42L, 38L, 41L, 15L, 38L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 64L, 27L, 73L, 48L, 76L, 67L, 74L, 69L, 73L, 56L, 56L, 52L, 37L, 47L, 43L, 51L, 38L, 46L, 17L, 27L, 24L, 22L, 22L, 35L, 55L, 38L, 44L, 71L, 48L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(23L, 88L, 38L, 79L, 66L, 85L, 64L, 69L, 59L, 69L, 57L, 56L, 44L, 36L, 40L, 34L, 28L, 28L, 24L, 22L, 39L, 31L, 41L, 19L, 31L, 27L, 36L, 44L, 46L, 29L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 89L, 47L, 55L, 68L, 61L, 44L, 48L, 34L, 35L, 31L, 22L, 18L, 14L, 14L, 9L, 15L, 23L, 9L, 7L, 8L, 14L, 23L, 16L, 45L, 42L, 45L, 42L, 48L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(31L, 52L, 67L, 79L, 60L, 54L, 78L, 30L, 30L, 19L, 0L, 11L, 9L, 14L, 19L, 39L, 22L, 31L, 17L, 41L, 35L, 29L, 22L, 7L, 0L, 0L, 0L, 10L, 5L, 8L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 18L, 47L, 62L, 64L, 75L, 81L, 69L, 73L, 81L, 61L, 69L, 69L, 61L, 42L, 53L, 48L, 48L, 33L, 24L, 19L, 24L, 31L, 21L, 33L, 51L, 37L, 50L, 45L, 49L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(14L, 48L, 49L, 57L, 38L, 51L, 57L, 56L, 57L, 51L, 44L, 33L, 37L, 27L, 26L, 18L, 21L, 11L, 23L, 14L, 27L, 31L, 32L, 19L, 17L, 20L, 27L, 40L, 14L, 43L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 81L, 18L, 48L, 53L, 47L, 70L, 49L, 39L, 41L, 29L, 24L, 22L, 24L, 20L, 10L, 15L, 21L, 22L, 29L, 28L, 29L, 33L, 29L, 32L, 38L, 29L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 66L, 26L, 37L, 22L, 31L, 12L, 9L, 20L, 20L, 20L, 13L, 18L, 14L, 12L, 23L, 21L, 19L, 12L, 19L, 38L, 13L, 0L, 29L, 20L, 35L, 27L, 26L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 28L, 28L, 40L, 45L, 51L, 46L, 43L, 35L, 42L, 25L, 33L, 27L, 22L, 28L, 19L, 32L, 23L, 33L, 14L, 4L, 0L, 56L, 15L, 28L, 25L, 37L, 47L, 24L, 19L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 71L, 29L, 58L, 49L, 52L, 19L, 46L, 48L, 33L, 32L, 34L, 26L, 34L, 27L, 32L, 26L, 28L, 26L, 29L, 17L, 0L, 12L, 14L, 18L, 38L, 26L, 26L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 86L, 40L, 55L, 39L, 36L, 55L, 40L, 27L, 49L, 22L, 33L, 17L, 18L, 20L, 31L, 18L, 17L, 14L, 18L, 24L, 27L, 19L, 24L, 32L, 12L, 19L, 19L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 100L, 44L, 62L, 72L, 50L, 40L, 40L, 31L, 40L, 24L, 30L, 32L, 13L, 15L, 20L, 23L, 12L, 17L, 21L, 18L, 14L, 19L, 27L, 22L, 30L, 14L, 13L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 18L, 40L, 27L, 33L, 33L, 46L, 32L, 26L, 24L, 37L, 39L, 25L, 33L, 27L, 32L, 37L, 22L, 19L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 8L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 10L, 6L, 0L, 2L, 21L, 18L, 6L, 4L, 13L, 0L, 3L, 0L, 6L, 2L, 2L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 52L, 31L, 50L, 25L, 65L, 37L, 71L, 36L, 41L, 35L, 39L, 38L, 37L, 42L, 25L, 32L, 36L, 19L, 16L, 11L, 11L, 0L, 0L, 0L, 0L, 0L, 1L, 17L, 23L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 10L, 40L, 39L, 57L, 17L, 39L, 43L, 41L, 28L, 34L, 38L, 21L, 38L, 19L, 24L, 20L, 19L, 28L, 12L, 12L, 0L, 2L, 3L, 9L, 16L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 14L, 19L, 26L, 34L, 45L, 46L, 39L, 30L, 24L, 37L, 30L, 37L, 16L, 29L, 30L, 20L, 22L, 18L, 6L, 19L, 11L, 0L, 3L, 4L, 12L, 21L, 6L, 8L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 3L, 10L, 42L, 32L, 35L, 31L, 29L, 25L, 29L, 26L, 28L, 23L, 32L, 34L, 22L, 32L, 24L, 15L, 18L, 13L, 10L, 30L, 11L, 9L, 15L, 19L, 13L, 7L, 29L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 46L, 32L, 26L, 30L, 38L, 47L, 29L, 6L, 38L, 41L, 26L, 28L, 2L, 17L, 6L, 0L, 9L, 6L, 0L, 8L, 0L, 10L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 29L, 32L, 38L, 28L, 49L, 32L, 38L, 37L, 44L, 35L, 36L, 35L, 33L, 31L, 26L, 31L, 12L, 13L, 21L, 31L, 9L, 19L, 20L, 17L, 24L, 0L, 11L, 18L, 17L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(13L, 18L, 30L, 35L, 45L, 29L, 36L, 41L, 19L, 40L, 25L, 10L, 23L, 19L, 32L, 13L, 36L, 6L, 8L, 17L, 9L, 18L, 15L, 2L, 7L, 0L, 0L, 4L, 2L, 25L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 17L, 41L, 26L, 21L, 30L, 28L, 12L, 31L, 16L, 19L, 19L, 17L, 18L, 11L, 17L, 10L, 11L, 17L, 18L, 17L, 10L, 9L, 10L, 12L, 16L, 24L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(60L, 19L, 48L, 50L, 28L, 65L, 36L, 42L, 33L, 37L, 23L, 26L, 26L, 28L, 22L, 12L, 23L, 19L, 24L, 21L, 13L, 19L, 0L, 12L, 15L, 0L, 0L, 2L, 15L, 5L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 78L, 16L, 34L, 44L, 42L, 43L, 28L, 23L, 21L, 14L, 12L, 17L, 4L, 12L, 4L, 3L, 3L, 0L, 15L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 12L, 0L, 10L, 3L, 0L, 4L, 0L, 0L, 17L, 6L, 6L, 2L, 8L, 5L, 5L, 0L, 8L, 6L, 10L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 13L, 51L, 22L, 46L, 41L, 38L, 36L, 42L, 41L, 30L, 28L, 15L, 3L, 0L, 14L, 8L, 6L, 21L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 33L, 18L, 48L, 43L, 43L, 35L, 23L, 33L, 35L, 25L, 31L, 22L, 33L, 12L, 24L, 12L, 13L, 13L, 0L, 11L, 9L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(34L, 33L, 27L, 32L, 40L, 47L, 30L, 43L, 50L, 27L, 23L, 32L, 27L, 37L, 22L, 19L, 22L, 17L, 6L, 10L, 11L, 0L, 12L, 3L, 0L, 0L, 0L, 4L, 3L, 26L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 87L, 45L, 27L, 47L, 9L, 27L, 19L, 10L, 0L, 8L, 8L, 10L, 0L, 0L, 0L, 9L, 4L, 0L, 10L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 44L, 35L, 48L, 41L, 42L, 44L, 40L, 46L, 42L, 40L, 37L, 35L, 25L, 20L, 12L, 24L, 29L, 33L, 20L, 29L, 16L, 18L, 3L, 0L, 33L, 4L, 29L, 15L, 18L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 23L, 0L, 0L, 21L, 45L, 35L, 40L, 38L, 32L, 35L, 27L, 24L, 35L, 6L, 31L, 31L, 30L, 37L, 35L, 28L, 28L, 28L, 20L, 12L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 30L, 0L, 11L, 45L, 66L, 53L, 58L, 55L, 39L, 29L, 42L, 51L, 45L, 45L, 57L, 44L, 15L, 55L, 24L, 50L, 56L, 45L, 44L, 43L, 19L, 45L, 53L, 25L, 26L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 49L, 53L, 37L, 70L, 41L, 13L, 43L, 31L, 29L, 23L, 20L, 13L, 11L, 24L, 8L, 16L, 14L, 13L, 9L, 7L, 4L, 4L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 19L, 22L, 24L, 40L, 24L, 32L, 0L, 29L, 32L, 17L, 16L, 24L, 25L, 10L, 11L, 39L, 32L, 13L, 26L, 23L, 40L, 26L, 20L, 23L, 23L, 32L, 21L, 38L, 30L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 27L, 20L, 19L, 37L, 0L, 28L, 23L, 29L, 20L, 16L, 38L, 20L, 27L, 17L, 19L, 22L, 7L, 21L, 12L, 15L, 17L, 16L, 12L, 12L, 9L, 2L, 16L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 47L, 0L, 27L, 20L, 51L, 0L, 40L, 48L, 40L, 36L, 38L, 40L, 13L, 29L, 40L, 27L, 30L, 28L, 21L, 32L, 15L, 26L, 12L, 22L, 17L, 26L, 10L, 28L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(21L, 53L, 28L, 51L, 70L, 49L, 38L, 0L, 9L, 46L, 31L, 36L, 28L, 38L, 38L, 22L, 40L, 20L, 27L, 32L, 29L, 23L, 32L, 16L, 23L, 31L, 25L, 20L, 20L, 14L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 24L, 67L, 30L, 72L, 10L, 51L, 70L, 64L, 51L, 57L, 58L, 57L, 66L, 51L, 14L, 45L, 45L, 58L, 45L, 51L, 29L, 55L, 27L, 46L, 16L, 27L, 28L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 70L, 36L, 19L, 40L, 23L, 44L, 56L, 14L, 56L, 18L, 46L, 32L, 46L, 8L, 34L, 35L, 28L, 19L, 37L, 22L, 34L, 29L, 19L, 17L, 16L, 20L, 18L, 8L, 22L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 42L, 38L, 34L, 36L, 30L, 40L, 13L, 36L, 33L, 38L, 31L, 26L, 28L, 4L, 23L, 4L, 17L, 16L, 22L, 29L, 21L, 30L, 33L, 18L, 21L, 22L, 15L, 3L, 16L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(7L, 34L, 20L, 29L, 37L, 49L, 51L, 39L, 39L, 53L, 42L, 46L, 22L, 43L, 7L, 27L, 39L, 41L, 19L, 30L, 24L, 34L, 27L, 19L, 24L, 25L, 23L, 15L, 26L, 16L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 3L, 0L, 0L, 41L, 25L, 38L, 20L, 26L, 6L, 23L, 22L, 19L, 4L, 17L, 17L, 14L, 15L, 20L, 15L, 3L, 23L, 11L, 16L, 10L, 22L, 15L, 11L, 35L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 30L, 29L, 24L, 5L, 37L, 37L, 25L, 24L, 40L, 34L, 30L, 29L, 41L, 22L, 23L, 28L, 19L, 25L, 28L, 27L, 29L, 36L, 16L, 26L, 29L, 36L, 34L, 50L, 58L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 16L, 34L, 31L, 17L, 47L, 48L, 59L, 33L, 57L, 43L, 46L, 37L, 34L, 14L, 3L, 27L, 31L, 20L, 42L, 17L, 33L, 11L, 21L, 24L, 119L, 18L, 13L, 25L, 18L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 26L, 33L, 21L, 14L, 29L, 53L, 19L, 15L, 38L, 27L, 21L, 13L, 6L, 5L, 18L, 14L, 0L, 15L, 5L, 17L, 0L, 11L, 12L, 11L, 5L, 2L, 4L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 16L, 30L, 32L, 6L, 31L, 29L, 25L, 23L, 37L, 25L, 33L, 26L, 32L, 0L, 0L, 16L, 18L, 32L, 39L, 23L, 30L, 33L, 11L, 26L, 31L, 22L, 14L, 11L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 18L, 20L, 22L, 26L, 45L, 44L, 46L, 42L, 37L, 42L, 26L, 35L, 33L, 23L, 32L, 22L, 34L, 27L, 31L, 20L, 22L, 21L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 4L, 36L, 10L, 64L, 52L, 69L, 54L, 68L, 41L, 56L, 59L, 27L, 86L, 28L, 42L, 52L, 50L, 56L, 52L, 63L, 44L, 37L, 49L, 42L, 35L, 39L, 36L, 34L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 8L, 70L, 23L, 55L, 45L, 51L, 62L, 40L, 27L, 43L, 47L, 38L, 42L, 42L, 38L, 40L, 39L, 44L, 25L, 33L, 40L, 23L, 31L, 35L, 38L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 14L, 0L, 31L, 6L, 49L, 49L, 62L, 38L, 63L, 46L, 43L, 51L, 8L, 54L, 29L, 28L, 31L, 32L, 20L, 43L, 18L, 42L, 23L, 22L, 32L, 22L, 22L, 26L, 24L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 8L, 26L, 28L, 45L, 49L, 49L, 56L, 59L, 48L, 40L, 52L, 56L, 50L, 36L, 46L, 48L, 50L, 38L, 31L, 34L, 35L, 42L, 28L, 33L, 31L, 24L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(47L, 17L, 31L, 10L, 0L, 55L, 56L, 56L, 63L, 46L, 47L, 47L, 25L, 10L, 45L, 23L, 52L, 30L, 45L, 36L, 39L, 41L, 21L, 32L, 45L, 28L, 35L, 25L, 46L, 10L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 18L, 0L, 31L, 15L, 10L, 0L, 13L, 0L, 33L, 6L, 12L, 23L, 10L, 40L, 20L, 24L, 30L, 22L, 27L, 6L, 19L, 12L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 21L, 12L, 30L, 14L, 46L, 40L, 59L, 22L, 40L, 45L, 75L, 18L, 53L, 40L, 51L, 38L, 48L, 31L, 39L, 40L, 41L, 26L, 49L, 36L, 26L, 33L, 22L, 43L, 9L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 32L, 27L, 20L, 8L, 30L, 48L, 62L, 30L, 37L, 38L, 33L, 47L, 8L, 34L, 23L, 29L, 24L, 30L, 14L, 30L, 21L, 22L, 19L, 21L, 18L, 5L, 11L, 13L, 17L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 24L, 29L, 41L, 31L, 40L, 43L, 25L, 23L, 24L, 26L, 20L, 18L, 19L, 16L, 7L, 18L, 0L, 12L, 15L, 11L, 8L, 9L, 13L, 9L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 24L, 76L, 40L, 30L, 47L, 29L, 28L, 27L, 25L, 27L, 16L, 18L, 21L, 19L, 19L, 19L, 21L, 29L, 35L, 28L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 4L, 27L, 23L, 32L, 35L, 21L, 22L, 15L, 14L, 14L, 11L, 13L, 17L, 7L, 8L, 2L, 5L, 4L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(19L, 34L, 47L, 26L, 31L, 59L, 59L, 64L, 45L, 44L, 46L, 68L, 44L, 35L, 63L, 43L, 40L, 37L, 31L, 45L, 30L, 37L, 27L, 34L, 16L, 24L, 19L, 20L, 18L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 10L, 58L, 23L, 45L, 37L, 29L, 51L, 21L, 45L, 28L, 27L, 43L, 39L, 29L, 33L, 30L, 19L, 32L, 15L, 36L, 13L, 22L, 35L, 9L, 25L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 13L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 14L, 33L, 30L, 37L, 52L, 38L, 39L, 48L, 46L, 35L, 48L, 46L, 41L, 35L, 32L, 26L, 31L, 25L, 30L, 31L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 13L, 51L, 18L, 35L, 44L, 23L, 18L, 28L, 25L, 9L, 33L, 14L, 24L, 9L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 38L, 9L, 36L, 28L, 11L, 14L, 9L, 29L, 7L, 28L, 7L, 13L, 14L, 39L, 34L, 24L, 13L, 39L, 38L, 21L, 28L, 10L, 19L, 5L, 23L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(15L, 39L, 65L, 67L, 59L, 67L, 71L, 67L, 69L, 62L, 35L, 28L, 40L, 46L, 33L, 19L, 21L, 25L, 41L, 29L, 40L, 27L, 20L, 32L, 29L, 30L, 16L, 20L, 11L, 17L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 25L, 55L, 38L, 49L, 60L, 16L, 28L, 55L, 19L, 37L, 27L, 19L, 15L, 47L, 54L, 48L, 24L, 45L, 45L, 19L, 44L, 40L, 39L, 13L, 25L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 40L, 39L, 30L, 52L, 85L, 71L, 81L, 70L, 64L, 78L, 54L, 65L, 45L, 34L, 25L, 25L, 42L, 46L, 39L, 45L, 22L, 37L, 43L, 25L, 44L, 25L, 32L, 16L, 17L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 73L, 15L, 53L, 21L, 64L, 13L, 55L, 46L, 53L, 50L, 47L, 43L, 51L, 48L, 37L, 34L, 36L, 37L, 39L, 43L, 36L, 34L, 34L, 21L, 6L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 50L, 48L, 50L, 66L, 62L, 70L, 70L, 65L, 66L, 47L, 32L, 48L, 54L, 45L, 46L, 46L, 46L, 41L, 43L, 21L, 34L, 27L, 41L, 22L, 19L, 26L, 12L, 3L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 39L, 69L, 40L, 58L, 48L, 68L, 36L, 34L, 41L, 37L, 29L, 40L, 38L, 50L, 28L, 39L, 28L, 58L, 12L, 43L, 31L, 39L, 35L, 27L, 11L, 24L, 32L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 72L, 44L, 26L, 64L, 50L, 62L, 58L, 35L, 21L, 51L, 29L, 47L, 34L, 22L, 27L, 32L, 18L, 28L, 22L, 26L, 20L, 14L, 8L, 11L, 7L, 3L, 7L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 26L, 47L, 37L, 58L, 10L, 53L, 39L, 47L, 39L, 34L, 32L, 27L, 29L, 23L, 16L, 12L, 20L, 23L, 24L, 14L, 21L, 13L, 18L, 3L, 7L, 9L, 10L, 11L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(13L, 43L, 44L, 53L, 64L, 76L, 50L, 73L, 75L, 55L, 53L, 51L, 66L, 50L, 60L, 39L, 68L, 59L, 43L, 48L, 47L, 60L, 42L, 48L, 26L, 41L, 41L, 47L, 9L, 32L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 7L, 0L, 0L, 0L, 44L, 54L, 35L, 39L, 37L, 39L, 30L, 33L, 24L, 37L, 24L, 27L, 13L, 2L, 25L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 16L, 74L, 26L, 48L, 49L, 53L, 47L, 45L, 43L, 47L, 15L, 29L, 32L, 40L, 39L, 29L, 36L, 37L, 30L, 40L, 33L, 27L, 33L, 34L, 35L, 30L, 24L, 7L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 8L, 0L, 0L, 0L, 15L, 48L, 23L, 46L, 47L, 33L, 49L, 44L, 47L, 38L, 43L, 32L, 41L, 37L, 35L, 29L, 34L, 35L, 32L, 33L, 35L, 33L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(6L, 61L, 63L, 68L, 64L, 86L, 20L, 74L, 79L, 63L, 68L, 56L, 71L, 54L, 54L, 45L, 58L, 52L, 53L, 60L, 44L, 56L, 55L, 48L, 48L, 39L, 34L, 5L, 10L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 27L, 18L, 40L, 31L, 56L, 20L, 60L, 52L, 35L, 47L, 46L, 0L, 49L, 37L, 40L, 49L, 31L, 55L, 46L, 42L, 31L, 43L, 52L, 43L, 50L, 46L, 21L, 30L, 13L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 6L, 0L, 0L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 5L, 0L, 0L, 0L, 0L, 10L, 9L, 29L, 26L, 54L, 31L, 46L, 31L, 43L, 37L, 35L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(7L, 58L, 77L, 73L, 45L, 11L, 46L, 82L, 49L, 26L, 35L, 18L, 11L, 0L, 61L, 5L, 3L, 2L, 5L, 54L, 56L, 60L, 13L, 49L, 54L, 69L, 37L, 17L, 43L, 22L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 19L, 26L, 50L, 36L, 42L, 38L, 39L, 24L, 13L, 31L, 30L, 30L, 2L, 39L, 35L, 15L, 22L, 21L, 32L, 16L, 20L, 23L, 17L, 29L, 14L, 29L, 15L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 41L, 38L, 35L, 55L, 44L, 59L, 4L, 53L, 21L, 44L, 47L, 37L, 35L, 31L, 33L, 42L, 0L, 34L, 20L, 27L, 28L, 26L, 25L, 34L, 4L, 48L, 51L, 24L, 20L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 6L, 0L, 0L, 0L, 18L, 58L, 20L, 59L, 19L, 61L, 46L, 57L, 74L, 12L, 19L, 6L, 70L, 39L, 6L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 12L, 45L, 53L, 39L, 60L, 45L, 54L, 60L, 13L, 54L, 21L, 46L, 31L, 34L, 8L, 35L, 37L, 12L, 35L, 26L, 12L, 29L, 28L, 13L, 30L, 18L, 13L, 10L, 18L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 91L, 18L, 53L, 47L, 41L, 33L, 41L, 44L, 33L, 32L, 32L, 36L, 29L, 34L, 27L, 19L, 25L, 10L, 26L, 19L, 14L, 10L, 21L, 18L, 17L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(2L, 0L, 0L, 76L, 15L, 48L, 25L, 37L, 12L, 42L, 5L, 14L, 8L, 13L, 46L, 26L, 15L, 6L, 0L, 9L, 0L, 27L, 3L, 19L, 19L, 11L, 11L, 6L, 0L, 12L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 28L, 12L, 30L, 38L, 37L, 48L, 13L, 47L, 7L, 28L, 37L, 26L, 26L, 25L, 24L, 32L, 17L, 11L, 0L, 0L, 19L, 21L, 6L, 0L, 18L, 8L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 49L, 48L, 43L, 60L, 58L, 40L, 59L, 54L, 48L, 15L, 50L, 56L, 51L, 35L, 45L, 44L, 34L, 45L, 46L, 42L, 44L, 30L, 19L, 35L, 17L, 20L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 75L, 49L, 61L, 40L, 49L, 61L, 62L, 32L, 57L, 60L, 62L, 25L, 59L, 48L, 63L, 51L, 37L, 31L, 24L, 35L, 23L, 20L, 50L, 21L, 47L, 37L, 50L, 24L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 52L, 45L, 48L, 59L, 57L, 59L, 63L, 56L, 47L, 49L, 26L, 41L, 19L, 37L, 32L, 33L, 32L, 32L, 16L, 13L, 21L, 17L, 18L, 19L, 11L, 2L, 0L, 8L, 0L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 10L, 15L, 31L, 33L, 49L, 67L, 28L, 18L, 14L, 29L, 18L, 15L, 9L, 33L, 18L, 11L, 18L, 28L, 21L, 11L, 28L, 20L, 30L, 31L, 26L, 21L, 21L, 24L, 26L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 20L, 40L, 36L, 44L, 51L, 35L, 39L, 29L, 43L, 30L, 42L, 5L, 0L, 24L, 23L, 32L, 23L, 30L, 32L, 20L, 26L, 21L, 25L, 20L, 23L, 23L, 16L, 16L, 9L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 79L, 51L, 53L, 76L, 45L, 60L, 56L, 81L, 35L, 74L, 52L, 62L, 51L, 48L, 53L, 23L, 42L, 41L, 33L, 40L, 31L, 37L, 35L, 30L, 36L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 59L, 15L, 45L, 42L, 26L, 61L, 35L, 43L, 46L, 35L, 28L, 48L, 49L, 46L, 32L, 28L, 7L, 34L, 30L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(43L, 65L, 82L, 82L, 92L, 86L, 102L, 92L, 67L, 51L, 66L, 56L, 36L, 67L, 49L, 71L, 60L, 39L, 48L, 38L, 56L, 25L, 30L, 48L, 39L, 30L, 27L, 38L, 20L, 27L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 27L, 0L, 0L, 0L, 0L, 0L, 140L, 54L, 48L, 40L, 63L, 75L, 50L, 48L, 42L, 53L, 44L, 56L, 30L, 34L, 46L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 44L, 0L, 0L, 0L, 0L, 0L, 33L, 13L, 19L, 64L, 11L, 0L, 67L, 38L, 14L, 30L, 38L, 32L, 20L, 32L, 23L, 28L, 16L, 21L, 24L, 29L, 19L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 8L, 25L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 24L, 53L, 39L, 53L, 7L, 38L, 9L, 26L, 14L, 18L, 28L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 15L, 0L, 15L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 19L, 23L, 37L, 16L, 36L, 31L, 34L, 42L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 37L, 46L, 81L, 51L, 31L, 54L, 63L, 36L, 63L, 50L, 52L, 88L, 47L, 2L, 70L, 57L, 64L, 23L, 21L, 38L, 60L, 38L, 10L, 52L, 33L, 68L, 35L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 17L, 97L, 50L, 61L, 39L, 51L, 63L, 31L, 42L, 39L, 54L, 42L, 38L, 37L, 43L, 46L, 45L, 39L, 39L, 50L, 49L, 42L, 27L, 31L, 46L, 35L, 11L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 14L, 0L, 0L, 42L, 53L, 79L, 51L, 70L, 39L, 70L, 65L, 60L, 50L, 35L, 57L, 34L, 52L, 15L, 63L, 39L, 41L, 58L, 42L, 49L, 43L, 4L, 42L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 78L, 17L, 36L, 30L, 27L, 45L, 50L, 40L, 39L, 32L, 38L, 11L, 58L, 18L, 27L, 39L, 38L, 24L, 20L, 21L, 20L, 25L, 29L, 22L, 0L, 9L, 14L, 30L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 48L, 42L, 28L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 13L, 17L, 0L, 15L, 0L, 52L, 19L, 24L, 32L, 32L, 26L, 28L, 20L, 14L, 25L, 26L, 19L, 16L, 12L, 16L, 12L, 12L, 14L, 10L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 57L, 39L, 52L, 49L, 80L, 63L, 52L, 47L, 41L, 37L, 57L, 37L, 36L, 36L, 42L, 31L, 46L, 30L, 39L, 37L, 42L, 39L, 46L, 42L, 43L, 41L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(13L, 52L, 46L, 55L, 40L, 61L, 19L, 49L, 42L, 5L, 25L, 11L, 20L, 16L, 20L, 12L, 21L, 13L, 8L, 16L, 17L, 13L, 17L, 14L, 14L, 10L, 19L, 13L, 13L, 21L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(21L, 32L, 41L, 49L, 60L, 51L, 45L, 50L, 41L, 50L, 29L, 33L, 29L, 31L, 18L, 19L, 31L, 24L, 22L, 23L, 32L, 26L, 30L, 23L, 25L, 21L, 27L, 17L, 21L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(44L, 53L, 79L, 82L, 93L, 91L, 70L, 73L, 52L, 67L, 32L, 66L, 35L, 51L, 30L, 39L, 28L, 36L, 29L, 27L, 39L, 28L, 36L, 34L, 32L, 36L, 20L, 27L, 23L, 34L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(9L, 30L, 47L, 54L, 52L, 53L, 51L, 49L, 35L, 24L, 16L, 29L, 21L, 27L, 23L, 26L, 23L, 19L, 30L, 17L, 16L, 23L, 24L, 20L, 10L, 18L, 15L, 8L, 14L, 9L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 40L, 53L, 52L, 62L, 66L, 72L, 66L, 64L, 58L, 48L, 48L, 42L, 43L, 47L, 43L, 37L, 37L, 38L, 33L, 38L, 30L, 50L, 37L, 41L, 33L, 35L, 28L, 26L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 14L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 30L, 8L, 11L, 23L, 28L, 28L, 19L, 18L, 12L, 18L, 14L, 19L, 12L, 8L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 18L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 30L, 16L, 24L, 14L, 22L, 17L, 33L, 9L, 34L, 17L, 23L, 10L, 23L, 24L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(73L, 75L, 63L, 80L, 82L, 81L, 91L, 67L, 76L, 80L, 44L, 43L, 51L, 45L, 51L, 10L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 45L, 28L, 27L, 30L, 33L, 27L, 32L, 18L, 19L, 15L, 24L, 15L, 15L, 27L, 13L, 14L, 6L, 16L, 10L, 7L, 3L, 10L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 85L, 39L, 51L, 47L, 55L, 58L, 46L, 44L, 35L, 46L, 49L, 43L, 20L, 46L, 43L, 16L, 45L, 29L, 46L, 28L, 38L, 34L, 33L, 33L, 36L, 41L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 62L, 17L, 44L, 53L, 45L, 47L, 48L, 49L, 43L, 36L, 39L, 39L, 41L, 39L, 35L, 42L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 17L, 81L, 27L, 15L, 9L, 10L, 68L, 61L, 4L, 77L, 19L, 7L, 5L, 50L, 15L, 70L, 8L, 58L, 47L, 34L, 47L, 29L, 65L, 58L, 58L, 72L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 11L, 0L, 0L, 0L, 0L, 45L, 10L, 49L, 17L, 44L, 51L, 25L, 41L, 15L, 24L, 24L, 38L, 27L, 26L, 41L, 45L, 28L, 45L, 41L, 41L, 30L, 28L, 17L, 13L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 39L, 51L, 57L, 39L, 67L, 40L, 47L, 5L, 63L, 45L, 28L, 38L, 10L, 48L, 24L, 50L, 47L, 15L, 7L, 37L, 37L, 63L, 39L, 46L, 35L, 15L, 33L, 14L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 3L, 17L, 16L, 14L, 0L, 17L, 0L, 0L, 11L, 6L, 0L, 0L, 0L, 23L, 5L, 0L, 10L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 57L, 49L, 23L, 61L, 49L, 54L, 33L, 30L, 17L, 44L, 36L, 15L, 34L, 6L, 15L, 30L, 14L, 30L, 15L, 20L, 25L, 37L, 23L, 11L, 40L, 12L, 30L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 64L, 31L, 63L, 52L, 37L, 51L, 46L, 30L, 51L, 40L, 13L, 21L, 23L, 19L, 45L, 13L, 19L, 13L, 27L, 36L, 20L, 28L, 11L, 11L, 14L, 15L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 9L, 13L, 15L, 0L, 0L, 0L, 0L, 19L, 26L, 43L, 16L, 41L, 15L, 45L, 47L, 41L, 29L, 34L, 3L, 56L, 60L, 54L, 22L, 44L, 49L, 53L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 59L, 22L, 56L, 51L, 80L, 52L, 53L, 60L, 60L, 22L, 24L, 28L, 50L, 12L, 35L, 10L, 50L, 34L, 39L, 37L, 45L, 39L, 36L, 32L, 26L, 36L, 36L, 38L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 11L, 41L, 8L, 47L, 43L, 73L, 29L, 51L, 57L, 66L, 70L, 75L, 64L, 72L, 55L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 49L, 46L, 43L, 56L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 67L, 55L, 59L, 60L, 48L, 75L, 57L, 79L, 52L, 60L, 59L, 59L, 50L, 59L, 37L, 40L, 51L, 46L, 30L, 27L, 58L, 26L, 38L, 37L, 33L, 50L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 15L, 73L, 29L, 34L, 49L, 46L, 56L, 52L, 54L, 49L, 55L, 49L, 27L, 46L, 40L, 40L, 29L, 51L, 40L, 32L, 37L, 35L, 24L, 54L, 44L, 32L, 40L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 109L, 30L, 38L, 40L, 60L, 62L, 52L, 67L, 43L, 58L, 20L, 37L, 27L, 26L, 19L, 52L, 39L, 33L, 15L, 46L, 56L, 39L, 37L, 29L, 34L, 22L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 5L, 0L, 0L, 0L, 0L, 0L, 6L, 56L, 12L, 37L, 22L, 40L, 33L, 20L, 28L, 24L, 32L, 30L, 35L, 21L, 19L, 31L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 15L, 66L, 74L, 54L, 70L, 53L, 60L, 82L, 82L, 58L, 85L, 51L, 71L, 59L, 5L, 14L, 60L, 34L, 35L, 53L, 29L, 57L, 70L, 56L, 78L, 50L, 36L, 50L, 37L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 26L, 48L, 12L, 31L, 6L, 49L, 14L, 15L, 56L, 5L, 12L, 41L, 2L, 56L, 4L, 5L, 44L, 17L, 4L, 32L, 18L, 39L, 35L, 22L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 8L, 22L, 0L, 73L, 22L, 58L, 57L, 9L, 12L, 41L, 31L, 15L, 63L, 14L, 9L, 9L, 14L, 45L, 60L, 41L, 42L, 42L, 41L, 32L, 34L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 133L, 49L, 61L, 73L, 89L, 48L, 43L, 65L, 74L, 34L, 13L, 24L, 5L, 35L, 62L, 27L, 42L, 20L, 18L, 23L, 59L, 49L, 48L, 45L, 35L, 31L, 30L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 23L, 63L, 28L, 34L, 67L, 81L, 51L, 73L, 33L, 71L, 78L, 15L, 16L, 61L, 71L, 12L, 43L, 16L, 48L, 5L, 37L, 55L, 40L, 38L, 68L, 62L, 52L, 49L, 55L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 78L, 41L, 55L, 12L, 64L, 63L, 51L, 61L, 50L, 23L, 9L, 17L, 59L, 20L, 20L, 14L, 47L, 41L, 0L, 43L, 29L, 17L, 14L, 4L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 17L, 13L, 38L, 52L, 64L, 73L, 85L, 40L, 82L, 73L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 58L, 22L, 39L, 41L, 49L, 60L, 30L, 57L, 21L, 23L, 27L, 33L, 25L, 34L, 28L, 42L, 13L, 45L, 43L, 47L, 45L, 40L, 31L, 38L, 51L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 32L, 45L, 53L, 74L, 68L, 74L, 65L, 79L, 64L, 54L, 57L, 63L, 0L, 0L, 57L, 47L, 54L, 17L, 31L, 51L, 24L, 54L, 46L, 47L, 31L, 33L, 25L, 33L, 29L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 12L, 49L, 41L, 33L, 66L, 46L, 37L, 51L, 60L, 54L, 46L, 49L, 29L, 62L, 21L, 11L, 45L, 47L, 26L, 51L, 41L, 36L, 45L, 41L, 17L, 43L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 56L, 66L, 36L, 62L, 4L, 61L, 60L, 58L, 56L, 62L, 55L, 53L, 31L, 50L, 23L, 14L, 59L, 9L, 17L, 30L, 26L, 39L, 57L, 38L, 39L, 43L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 8L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 33L, 40L, 41L, 24L, 45L, 19L, 40L, 40L, 55L, 11L, 19L, 29L, 41L, 41L, 26L, 31L, 27L, 37L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 10L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 22L, 61L, 32L, 69L, 49L, 66L, 58L, 50L, 48L, 50L, 54L, 44L, 51L, 46L, 38L, 38L, 53L, 42L, 33L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 112L, 28L, 49L, 50L, 41L, 50L, 33L, 20L, 48L, 48L, 27L, 38L, 25L, 24L, 20L, 22L, 24L, 11L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 61L, 7L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 14L, 6L, 60L, 45L, 42L, 64L, 46L, 67L, 38L, 54L, 38L, 54L, 47L, 39L, 51L, 33L, 35L, 0L, 46L, 46L, 46L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 20L, 43L, 22L, 41L, 46L, 56L, 45L, 50L, 51L, 41L, 42L, 38L, 46L, 50L, 49L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 24L, 41L, 57L, 76L, 67L, 71L, 71L, 60L, 41L, 79L, 66L, 63L, 66L, 53L, 52L, 37L, 63L, 47L, 40L, 50L, 43L, 47L, 42L, 57L, 41L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 23L, 0L, 0L, 0L, 33L, 70L, 55L, 31L, 56L, 66L, 50L, 58L, 50L, 65L, 50L, 40L, 51L, 32L, 50L, 51L, 43L, 45L, 54L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 32L, 57L, 53L, 64L, 38L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 20L, 66L, 59L, 40L, 60L, 63L, 53L, 13L, 59L, 38L, 24L, 24L, 21L, 9L, 56L, 18L, 53L, 54L, 49L, 58L, 11L, 5L, 6L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 14L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 17L, 0L, 13L, 47L, 48L, 59L, 55L, 63L, 55L, 52L, 50L, 55L, 20L, 16L, 3L, 0L, 0L, 11L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(22L, 65L, 62L, 75L, 82L, 48L, 84L, 65L, 53L, 74L, 56L, 49L, 46L, 10L, 17L, 32L, 35L, 49L, 39L, 30L, 18L, 41L, 20L, 11L, 16L, 14L, 12L, 4L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 15L, 23L, 8L, 20L, 44L, 11L, 13L, 7L, 10L, 13L, 12L, 8L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 61L, 33L, 30L, 63L, 46L, 40L, 23L, 17L, 37L, 28L, 32L, 35L, 37L, 42L, 30L, 28L, 23L, 0L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 84L, 45L, 66L, 65L, 54L, 73L, 71L, 74L, 66L, 71L, 53L, 51L, 55L, 71L, 57L, 65L, 40L, 60L, 59L, 53L, 56L, 40L, 52L, 59L, 42L, 51L, 5L, 6L, 10L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 34L, 0L, 0L, 18L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 22L, 55L, 62L, 51L, 61L, 11L, 49L, 65L, 37L, 51L, 45L, 52L, 21L, 38L, 32L, 61L, 31L, 37L, 33L, 7L, 29L, 19L, 31L, 22L, 7L, 0L, 7L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 14L, 24L, 51L, 67L, 31L, 64L, 43L, 46L, 60L, 50L, 50L, 46L, 6L, 24L, 27L, 34L, 52L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 7L, 0L, 0L, 0L, 0L, 10L, 0L, 56L, 32L, 38L, 26L, 39L, 15L, 41L, 45L, 0L, 0L, 27L, 44L, 24L, 37L, 0L, 5L, 15L, 2L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 16L, 4L, 11L, 31L, 21L, 38L, 42L, 25L, 22L, 23L, 4L, 48L, 8L, 0L, 21L, 0L, 16L, 20L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 68L, 24L, 54L, 37L, 27L, 40L, 42L, 23L, 39L, 50L, 40L, 20L, 76L, 42L, 35L, 0L, 0L, 11L, 7L, 9L, 46L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 21L, 30L, 40L, 50L, 51L, 32L, 55L, 7L, 73L, 64L, 56L, 55L, 8L, 44L, 58L, 50L, 50L, 54L, 60L, 48L, 6L, 44L, 47L, 37L, 14L, 30L, 4L, 2L, 19L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 45L, 57L, 56L, 49L, 20L, 61L, 61L, 74L, 40L, 72L, 67L, 48L, 8L, 48L, 35L, 61L, 47L, 46L, 58L, 7L, 40L, 35L, 37L, 37L, 20L, 3L, 13L, 5L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 7L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 9L, 26L, 11L, 8L, 8L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 85L, 24L, 48L, 48L, 68L, 90L, 78L, 67L, 46L, 43L, 30L, 62L, 38L, 14L, 48L, 41L, 21L, 31L, 27L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 13L, 16L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 13L, 40L, 27L, 8L, 34L, 41L, 22L, 15L, 2L, 44L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 9L, 9L, 26L, 38L, 44L, 24L, 37L, 12L, 38L, 51L, 42L, 54L, 50L, 49L, 0L, 3L, 27L, 19L, 27L, 33L, 4L, 6L, 0L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 11L, 39L, 0L, 5L, 0L, 0L, 24L, 6L, 51L, 40L, 43L, 60L, 12L, 50L, 12L, 66L, 10L, 56L, 3L, 9L, 13L, 2L, 2L)), .Names = c("args", "vals" )), structure(list(args = 5:34, vals = c(0L, 51L, 28L, 24L, 20L, 61L, 34L, 30L, 36L, 52L, 43L, 55L, 22L, 20L, 18L, 49L, 41L, 43L, 48L, 49L, 0L, 13L, 9L, 29L, 17L, 35L, 42L, 11L, 0L, 15L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(56L, 75L, 66L, 69L, 72L, 63L, 70L, 78L, 51L, 70L, 54L, 50L, 51L, 51L, 19L, 47L, 51L, 52L, 34L, 30L, 40L, 30L, 28L, 4L, 25L, 24L, 0L, 7L, 3L, 12L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 6L, 0L, 0L, 0L, 0L, 8L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 12L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 14L, 0L, 0L, 7L, 53L, 32L, 26L, 35L, 8L, 18L, 21L, 38L, 38L, 27L, 37L, 14L, 0L, 15L, 30L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 11L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 33L, 40L, 29L, 15L, 2L, 7L, 3L, 5L, 49L, 36L, 18L, 8L, 4L, 9L, 63L, 20L, 15L, 75L, 7L, 3L, 51L, 53L, 8L, 42L, 5L, 32L, 36L, 39L, 12L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 16L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 9L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 7L, 53L, 47L, 67L, 70L, 42L, 75L, 49L, 5L, 65L, 0L, 23L, 23L, 72L, 38L, 19L, 53L, 32L, 44L, 38L, 47L, 44L, 16L, 28L, 39L, 49L, 49L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 4L, 0L, 0L, 13L, 12L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 22L, 22L, 3L, 11L, 25L, 5L, 48L, 20L, 46L, 15L, 0L, 0L, 7L, 16L, 3L, 21L, 42L )), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(54L, 41L, 6L, 8L, 49L, 67L, 39L, 46L, 22L, 59L, 47L, 7L, 22L, 55L, 37L, 18L, 2L, 36L, 43L, 0L, 28L, 28L, 10L, 14L, 27L, 34L, 18L, 14L, 4L, 21L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 15L, 0L, 0L, 0L, 15L, 9L, 16L, 17L, 6L, 4L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 12L, 0L, 0L, 0L, 24L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 9L, 31L, 0L, 0L, 50L, 0L, 6L, 4L, 39L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 21L, 19L, 48L, 89L, 36L, 16L, 26L, 10L, 42L, 28L, 37L, 12L, 11L, 19L, 21L, 0L, 0L, 15L, 0L, 0L, 12L, 22L, 30L, 39L, 19L, 10L, 12L, 17L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 58L, 55L, 115L, 34L, 64L, 75L, 82L, 61L, 79L, 47L, 54L, 0L, 0L, 15L, 0L, 0L, 0L, 10L, 0L, 42L, 0L, 17L, 27L, 0L, 5L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 7L, 96L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(26L, 21L, 62L, 68L, 55L, 0L, 69L, 0L, 24L, 0L, 53L, 42L, 10L, 9L, 21L, 59L, 0L, 21L, 0L, 12L, 37L, 23L, 56L, 32L, 34L, 0L, 9L, 18L, 17L, 30L)), .Names = c("args", "vals")), structure(list(args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 7L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("args", "vals")), structure(list( args = 5:34, vals = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 19L, 0L, 14L, 10L, 18L, 0L, 17L, 0L, 11L, 3L, 0L, 28L, 0L, 23L, 47L, 18L, 18L, 4L, 2L, 16L, 9L, 19L)), .Names = c("args", "vals"))), labels = list("long-lived", "short-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "long-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "long-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "long-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived", "short-lived")), class = "functional") )ddalpha/R/depth.simplicial.r0000644000176200001440000000525112545164373015501 0ustar liggesusers################################################################################ # File: depth.simplicial.r # Created by: Oleksii Pokotylo # First published: 15.06.2015 # Last revised: 15.06.2015 # # Computation of the simplicial data depth. ################################################################################ depth.simplicial <- function(x, data, exact = F, k = 0.05, seed = 0){ if (seed!=0) set.seed(seed) if (!is.matrix(x) && is.vector(x)){ x <- matrix(x, nrow=1) } if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.numeric(x)){ stop("Argument \"x\" should be numeric") } if (ncol(x) != ncol(data)){ stop("Dimensions of the arguments \"x\" and \"data\" should coincide") } if (ncol(data) + 1 > nrow(data)){ #? stop("To few data points") } if (!exact) if (k <= 0) stop("k must be positive") else if (k < 1) k = choose(nrow(data), ncol(data))*k points <- as.vector(t(data)) objects <- as.vector(t(x)) ds <- .C("SimplicialDepth", as.double(points), as.double(objects), as.integer(nrow(data)), as.integer(nrow(x)), as.integer(ncol(data)), as.integer(seed), as.integer(exact), as.integer(.longtoint(k)), depths=double(nrow(x)))$depths return (ds) } depth.space.simplicial <- function(data, cardinalities, exact = F, k = 0.05, seed = 0){ if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.vector(cardinalities, mode = "numeric") || is.na(min(cardinalities)) || sum(.is.wholenumber(cardinalities)) != length(cardinalities) || min(cardinalities) <= 0 || sum(cardinalities) != nrow(data)){ stop("Argument \"cardinalities\" should be a vector of cardinalities of the classes in \"data\" ") } if (sum(cardinalities < ncol(data) + 1) != 0){ stop("Not in all classes sufficiently enough objetcs") } depth.space <- NULL for (i in 1:length(cardinalities)){ pattern <- data[(1 + sum(cardinalities[0:(i - 1)])):sum(cardinalities[1:i]),] pattern.depths <- depth.simplicial (data, pattern, exact, k, seed) depth.space <- cbind(depth.space, pattern.depths, deparse.level = 0) } return (depth.space) } ddalpha/R/ddalphaf.test.r0000644000176200001440000000624312745655010014766 0ustar liggesusersddalphaf.test <- function(learn, learnlabels, test, testlabels, disc.type = c("LS", "comp"), ...){ ops <- options(warn = -1) on.exit(options(ops)) disc.type <- match.arg(disc.type) ftrain = switch(disc.type, "LS" = ddalphaf.train, "comp" = compclassf.train ) fclassify = switch(disc.type, "LS" = ddalphaf.classify, "comp" = compclassf.classify ) tryCatch({ time <- system.time( ddalpha <- ftrain(learn, learnlabels, ...) ) cc = fclassify(objectsf = test,ddalphaf = ddalpha) if (is.numeric(testlabels[[1]])){ if(is.factor(cc[[1]]) || is.character(cc[[1]])){ cc <- unlist(lapply(cc, as.character)) cc[cc == "Ignored"] <- NA } equal = (cc == testlabels) } else { cc <- unlist(lapply(cc, as.character)) equal = (cc == as.character(testlabels)) } if(!(T %in% equal) && !(F %in% equal)) { return(NA)} error = sum(!equal,na.rm = T)/(sum(!equal,na.rm = T)+sum(equal,na.rm = T)) return(list(error = error, correct = sum(equal,na.rm = T), incorrect = sum(!equal,na.rm = T), total = length(cc)-sum(is.na(equal)), ignored = sum(is.na(equal)), n = length(cc), time = time[1])) } # tryCatch({} , error = function(e) { print ("ERROR T") print (e) }, finally = { }) return (NA) } ddalphaf.getErrorRateCV <- function(dataf, labels, numchunks = 10, disc.type = c("LS", "comp"), ...){ n = length(dataf) numchunks = min(n, numchunks) chunksize = ceiling(n/numchunks) sample = seq(from = 1, by = numchunks, length.out = chunksize) errors = 0 total = 0 times = c() for (i in 1:numchunks){ sample = sample[sample<=n] learn = dataf[-sample] test = dataf[sample] learnlabels = labels[-sample] testlabels = labels[sample] el = ddalphaf.test(learn, learnlabels, test, testlabels, disc.type, ...) if(is.list(el)){ errors = errors + el$incorrect total = total + el$total times = c(times,el$time) } sample = sample+1 } return (list(errors = errors/total, time = mean(times), time_sd = sd(times))) } ddalphaf.getErrorRatePart <- function(dataf, labels, size = 0.3, times = 10, disc.type = c("LS", "comp"), ...){ if (!is.numeric(size) || size <=0 || size >= length(dataf)) stop("Wrong size of excluded sequences") if(size < 1) size = max(1, size*length(dataf)) # at least 1 point size = as.integer(size) indexes = 1:length(dataf) errors = c() total = 0 time = c() for (i in 1:times){ samp = sample(indexes, size) learn = dataf[-samp] test = dataf[samp] learnlabels = labels[-samp] testlabels = labels[samp] el = ddalphaf.test(learn, learnlabels, test, testlabels, disc.type, ...) if(is.list(el)){ errors = c(errors,el$incorrect/el$total) time = c(time,el$time) } } return (list(errors = mean(errors), errors_sd = sd(errors), errors_vec = errors, time = mean(time), time_sd = sd(time))) }ddalpha/R/dknn.R0000644000176200001440000001051012745655010013127 0ustar liggesusers################################################################################ # File: dknn.r # Created by: Oleksii Pokotylo # First published: # Last revised: # # Contains the realization of the Depth-based KNN classifier of Paindaveine and Van Bever (2015). ################################################################################ dknn.train <- function(data, kMax = -1, depth = "halfspace", seed = 0){ dpth = switch (depth, "halfspace" = 1, "Mahalanobis" = 2, "simplicial" = 3, 0) if(dpth == 0) stop("Wrong depth: ", depth) n = nrow(data) chunkNumber = n #10 dimension = ncol(data)-1 labs <- data[,dimension+1] labels <- integer(length(labs)) uniquelab = unique(labs) cardinalities = unlist(lapply(uniquelab, function(l)sum(labs == l))) uniquelab = uniquelab[order(cardinalities)] cardinalities = cardinalities[order(cardinalities)] for (i in seq_along(uniquelab)){ labels[labs == uniquelab[i]] <- i } if(length(uniquelab)<2) stop("There is only one class") if (!is.numeric(kMax) || is.na(kMax) || length(kMax) != 1 || !.is.wholenumber(kMax) || !(kMax >= 1 && kMax <= (cardinalities[1]+rev(cardinalities)[1]) || kMax == -1)){ warning("In treatment number ", i, ": Argument \"k\" not specified correctly. Defaults are applied") kMax <- - 1 } if(kMax == -1) kMax <- n/2 kMax <- min(kMax, n - 1) kMax <- max(kMax, 2) points <- as.vector(t(data[,1:dimension])) k <- as.integer(.C("DKnnLearnCv", as.double(points), as.integer(labels), as.integer(n), as.integer(dimension), as.integer(kMax), as.integer(dpth), k = integer(1), as.integer(chunkNumber), as.integer(seed))$k) dknn <- list(data = data, n = n, dimension = dimension, labels = labels, uniquelab = uniquelab, methodSeparator = "Dknn", k = k, depth = dpth,#depth, seed = seed) return (dknn) } dknn.classify.trained <- function(objects, dknn){ # Correct input data if(is.data.frame(objects)) objects = as.matrix(objects) if (!is.matrix(objects)){ objects <- matrix(objects, nrow=1) } if(ncol(objects)!=dknn$dimension) stop("Parameter 'objects' has wrong dimension") points <- as.vector(t(dknn$data[,1:dknn$dimension])) obj <- as.vector(t(objects)) output <- .C("DKnnClassify", as.double(obj), as.integer(nrow(objects)), as.double(points), as.integer(dknn$labels), as.integer(dknn$n), as.integer(dknn$dimension), as.integer(dknn$k), as.integer(dknn$depth), as.integer(dknn$seed), output=integer(nrow(objects)))$output results = dknn$uniquelab[output] return (results) } dknn.classify <- function(objects, data, k, depth = "halfspace", seed = 0){ n = nrow(data) dimension = ncol(data)-1 labs <- data[,dimension+1] labels <- integer(length(labs)) uniquelab = unique(labs) cardinalities = unlist(lapply(uniquelab, function(l)sum(labs == l))) uniquelab = uniquelab[order(cardinalities)] cardinalities = cardinalities[order(cardinalities)] for (i in seq_along(uniquelab)){ labels[labs == uniquelab[i]] <- i } if(length(uniquelab)<2) stop("There is only one class") if (!is.numeric(k) || is.na(k) || length(k) != 1 || !.is.wholenumber(k) || k < 1 || k > nrow(data)){ stop("Argument \"k\" not specified correctly.") } dpth = switch (depth, "halfspace" = 1, "Mahalanobis" = 2, "simplicial" = 3, 0) if(dpth == 0) stop("Wrong depth: ", depth) dknn <- list(data = data, n = n, dimension = dimension, labels = labels, uniquelab = uniquelab, methodSeparator = "Dknn", k = k, depth = dpth,#depth, seed = seed) return (dknn.classify.trained(objects, dknn)) }ddalpha/R/depth.fd.R0000644000176200001440000026231513162365543013710 0ustar liggesusers################ # R call for the F procedures # functional depth computation # Stanislav Nagy # nagy at karlin.mff.cuni.cz # 26/09/2017 # # Nagy, Gijbels, Hlubinka: Depth-Based Recognition of Shape Outlying Functions. Journal of Computational and Graphical Statistics. To appear. # Nagy, Ferraty: Data Depth for Noisy Random Functions. Under review. ################ if(FALSE){ # for roxygenize only unlink("depth.fd",recursive=TRUE) library(roxygen2) library(devtools) package.skeleton("depth.fd",code_files="depth.fd.R") roxygenize("depth.fd") } #' @useDynLib depth.fd #' @export FKS #' @export shape.fd.analysis #' @export shape.fd.outliers #' @export depthf.BD #' @export depthf.ABD #' @export depthf.fd1 #' @export depthf.fd2 #' @export depthf.HR #' @export depthf.hM #' @export depthf.hM2 #' @export depthf.RP1 #' @export depthf.RP2 #' @export derivatives.est #' @export L2metric #' @export Cmetric #' @export depth.sample #' @export infimalRank #' @export dataf2rawfd #' @export rawfd2dataf #' @title Transform a \code{dataf} object to raw functional data #' #' @description #' From a (possibly multivariate) functional data object \code{dataf} constructs an array of the functional values #' evaluated at an equi-distant grid of points. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords functional #' #' @param dataf Functions to be transformed, represented by a (possibly multivariate) \code{dataf} object of their arguments #' and functional values. \code{m} stands for the number of functions. The grid of observation points for the #' functions in \code{dataf} may not be the same. #' #' @param range The common range of the domain where the fucntions \code{dataf} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{dataf}. If the range is not provided, the smallest interval in which all the arguments from the data functions #' are contained is chosen as the domain. #' #' @param d Grid size to which all the functional data are transformed. All functional observations are #' transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation, see Nagy et al. (2016). #' #' @return If the functional data are univariate (scalar-valued), a matrix of size \code{m*d} is given, with each row #' corresponding to one function. If the functional data are \code{k}-variate with k>1, an array of size \code{m*d*k} #' of the functional values is given. #' #' @examples #' ## transform a matrix into a functinal data set and back #' n = 5 #' d = 21 #' X = matrix(rnorm(n*d),ncol=d) #' R = rawfd2dataf(X,range=c(0,1)) #' R2 = dataf2rawfd(R,range=c(0,1),d=d) #' all.equal(X,R2) #' #' ## transform a functional dataset into a raw matrix of functional values #' dataf = dataf.population()$dataf #' dataf2rawfd(dataf,range=c(1950,2015),d=66) #' #' ## transform an array into a multivariate functional data set and back #' k = 3 #' X = array(rnorm(n*d*k),dim=c(n,d,k)) #' R = rawfd2dataf(X,range=c(-1,1)) #' dataf2rawfd(R,range=c(-1,1),d=50) #' #' @seealso \code{\link{rawfd2dataf}} #' @seealso \code{\link{depthf.fd1}} #' @seealso \code{\link{depthf.fd2}} # M = dataf2rawfd(dataf.growth()$dataf) dataf2rawfd = function(dataf, range = NULL, d = 101){ # transform dataf format for functional data to a raw matrix # of functional values evaluated at a grid common to all functions # range: range of the common grid, if not specified the range of all the functions # d: no of discretized points in the grid, equidistant # approximation procedure follows Nagy et al. (2016, JMVA) # Check "dataf" if (!is.list(dataf)) stop("Argument 'dataf' must be a list") if(is.vector(dataf[[1]]$vals)){ mv = FALSE for (df in dataf) if (!(is.list(df) && length(df) == 2 && !is.null(df$args) && !is.null(df$vals) && is.vector(df$args) && is.vector(df$vals) && is.numeric(df$args) && is.numeric(df$vals) && length(df$args) == length(df$vals) && sort(df$args) == df$args)) stop("Argument 'dataf' must be a list containing lists (functions) of two vectors of equal length, named 'args' and 'vals': arguments sorted in ascending order and corresponding them values respectively") } if(is.matrix(dataf[[1]]$vals)){ mv = TRUE for (df in dataf) if (!(is.list(df) && length(df) == 2 && !is.null(df$args) && !is.null(df$vals) && is.vector(df$args) && is.matrix(df$vals) && is.numeric(df$args) && is.numeric(df$vals) && length(df$args) == nrow(df$vals) && sort(df$args) == df$args)) stop("Argument 'dataf' must be a list containing lists (functions) of a vector named 'args' and a matrix named 'vals'. The arguments of 'args' must be sorted in ascending order. To each element of 'args' the corresponding row in 'vals' represents the functional values at this point") } # range construction rng = numeric(0) for (df in dataf) rng = range(c(rng,df$args)) # common range of all the data if(!is.null(range)){ if(!(length(range) == 2 && is.numeric(range) && range[1]<=rng[1] && range[2]>=rng[2])) stop("Argument 'range' must be a numeric vector of two components that defines the range of the domain of functional data. All functional data must have 'args' vales inside this domain.") } else range = rng if(!(range[1]=dataf[[i]]$args[ni]] = dataf[[i]]$vals[ni] } } else { k = ncol(dataf[[1]]$vals) X = array(dim=c(n,d,k)) # functional data interpolation / extrapolation for(i in 1:n){ ni = length(dataf[[i]]$args) for(j in 1:k) X[i,,j] = approx(dataf[[i]]$args,dataf[[i]]$vals[,j],t)$y X[i,t<=dataf[[i]]$args[1],] = dataf[[i]]$vals[1,] X[i,t>=dataf[[i]]$args[ni],] = dataf[[i]]$vals[ni,] } } return(X) } #' @title Transform raw functional data to a \code{dataf} object #' #' @description #' Constructs a (possibly multivariate) functional data object given by an array of its functional values #' evaluated at an equi-distant grid of points, and transforms it into a \code{dataf} object more suitable #' for work in the \code{ddalpha} package. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords functional #' #' @param X Either a matrix of size \code{n*d}, or an array of dimension \code{n*d*k} of functional values. Here \code{n} #' stands for the number of functions, \code{d} is the number of equi-distant points in the domain where the functional #' values are evaluated, and if applicable, \code{k} is the dimensionality of the (vector-valued) functional data. #' #' @param range A vector of size two that represents the endpoints of the common domain of all functions \code{X}. #' #' @return A (possibly multivariate) \code{dataf} object corresponding to the functional data \code{X} evaluated at an #' equi-distant grid of points. #' #' @examples #' ## transform a matrix into a functinal data set #' n = 5 #' d = 21 #' X = matrix(rnorm(n*d),ncol=d) #' rawfd2dataf(X,range=c(0,1)) #' #' ## transform an array into a multivariate functional data set #' k = 3 #' X = array(rnorm(n*d*k),dim=c(n,d,k)) #' rawfd2dataf(X,range=c(-1,1)) #' #' @seealso \code{\link{dataf2rawfd}} #' @seealso \code{\link{depthf.fd1}} #' @seealso \code{\link{depthf.fd2}} rawfd2dataf = function(X, range){ # transform a raw array of functional data values # to a dataf format, where the domain is assumed to be # an equidistant grid in the interval given by range if(is.vector(X)) X = matrix(X,nrow=1) # if X is a single vector, it is considered to be a matrix of one scalar function # Check "rawfd" if (!is.array(X)) stop("Argument 'X' must be an array (multivariate functional data) or a matix (univariate functional data)") mv = !is.matrix(X) # range construction if(!(range[1]0) stop("NA values in the functional args vector are not allowed") # produce the output structure sm.dataf = list() Tout = sort(Tout) for(j in 1:length(dataf)){ T = dataf[[j]]$args X = dataf[[j]]$vals ST = dataf[[j]]$args eps = 10^(-6) Hmin = max(c(ST[1],(1-ST[length(ST)]),max(ST[-1] - ST[-length(ST)])/2))+eps H = seq(Hmin,ST[length(ST)]-ST[1],length=m) # n = length(ST) nR = max(1,floor(n/K)) if(nR==1) K = n TRE = rep(NA,nR*K) XRE = rep(NA,nR*K) TNRE = rep(NA,K*(n-nR)) XNRE = rep(NA,K*(n-nR)) SH = sample(n,n) # random shuffle of the points for CV for(i in 1:K){ S = SH[(i-1)*nR+(1:nR)] TRE[(i-1)*nR+(1:nR)] = T[S] XRE[(i-1)*nR+(1:nR)] = X[S] TNRE[(i-1)*(n-nR)+(1:(n-nR))] = T[-S] XNRE[(i-1)*(n-nR)+(1:(n-nR))] = X[-S] } Res = .Fortran("CVKERNSM", as.double(T), as.double(X), as.double(Tout), as.integer(length(T)), as.integer(length(Tout)), as.double(H), as.integer(length(H)), as.integer(kernI), as.double(TRE), as.double(XRE), as.double(TNRE), as.double(XNRE), as.integer(nR), as.integer(K), as.double(rep(0,length(Tout))) ) Res[Res[[15]]>10^6] = Inf sm.dataf[[j]] = list(args = Tout, vals = Res[[15]]) } return(sm.dataf) } #' @title Fast depth computation for univariate and bivariate random samples #' #' @description #' Faster implementation of the halfspace and the simplicial depth. Computes the depth #' of a whole random sample of a univariate or a bivariate data in one run. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords depth #' #' @details #' The function returns vectors of sample halfspace and simplicial depth values. #' #' @param A Univariate or bivariate points whose depth is computed, represented by a matrix of #' size \code{m*2}. \code{m} stands for the number of points, \code{d} is 1 for univariate and 2 #' for bivariate data. #' #' @param B Random sample points with respect to which the depth of \code{A} is computed. #' \code{B} is represented by a matrix of size \code{n*2}, where \code{n} is the sample size. #' #' @return Vector of length \code{m} of depth halfspace depth values is returned. #' #' @examples #' n = 100 #' m = 150 #' A = matrix(rnorm(2*n),ncol=2) #' B = matrix(rnorm(2*m),ncol=2) #' depth.sample(A,B) #' system.time(D1<-depth.halfspace(A,B)) #' system.time(D2<-depth.sample(A,B)) #' max(D1-D2$Half) #' #' A = rnorm(100) #' B = rnorm(150) #' depth.sample(A,B) #' # depth.halfspace(matrix(A,ncol=1),matrix(B,ncol=1)) #' #' @seealso \code{\link{depth.halfspace}} #' @seealso \code{\link{depth.simplicial}} depth.sample = function(A,B){ # bivariate halfspace depth # A points whose depth I compute, M*2 matrix # B points wrt whose the depth is computed, N*2 matrix if(is.null(dim(A))){ # for univariate data A1 = as.vector(A) B1 = as.vector(B) m = length(A) n = length(B) FD = .Fortran("dpth1", as.numeric(A1), # A1 as.numeric(B1), # B1 as.integer(m), # m as.integer(n), # n sdep=as.numeric(rep(-1,m)), hdep=as.numeric(rep(-1,m)) ) return(list(Simpl = FD$sdep, Half = FD$hdep)) } else { A1 = as.vector(A[,1]) A2 = as.vector(A[,2]) B1 = as.vector(B[,1]) B2 = as.vector(B[,2]) m = dim(A)[1] n = dim(B)[1] if((dim(B)[2]!=2)|(dim(A)[2]!=2)) stop("Computation for two dimensions only") FD = .Fortran("dpth2", as.numeric(A1), # A1 as.numeric(A2), # A2 as.numeric(B1), # B1 as.numeric(B2), # B2 as.integer(m), # m as.integer(n), # n sdep=as.numeric(rep(-1,m)), hdep=as.numeric(rep(-1,m)) ) return(list(Simpl = FD$sdep, Half = FD$hdep)) } } #' @title Univariate integrated and infimal depth for functional data #' #' @description #' Usual, and order extended integrated and infimal depths for real-valued functional data based on the #' halfspace and simplicial depth. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords depth functional #' #' @details #' The function returns vectors of sample integrated and infimal depth values. #' #' @param datafA Functions whose depth is computed, represented by a \code{dataf} object of their arguments #' and functional values. \code{m} stands for the number of functions. #' #' @param datafB Random sample functions with respect to which the depth of \code{datafA} is computed. #' \code{datafB} is represented by a \code{dataf} object of their arguments #' and functional values. \code{n} is the sample size. #' The grid of observation points for the #' functions \code{datafA} and \code{datafB} may not be the same. #' #' @param range The common range of the domain where the fucntions \code{datafA} and \code{datafB} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{datafA} and \code{datafB}. #' #' @param d Grid size to which all the functional data are transformed. For depth computation, #' all functional observations are first transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation, see Nagy et al. (2016). #' #' @param order The order of the order extended integrated and infimal depths. #' By default, this is set to \code{1}, meaning that the usual univariate depths of #' the functional values are computed. For \code{order=2} or \code{3}, the second #' and the third order extended integrated and infimal depths are computed, #' respectively. #' #' @param approx Number of approximations used in the computation of the order extended depth #' for \code{order} greater than \code{1}. For \code{order=2}, the default #' value is set to \code{0}, meaning that the depth is computed at all possible \code{d^order} #' combinations of the points in the domain. For \code{order=3}, #' the default value is set to \code{101}. When \code{approx} is a positive integer, \code{approx} #' points are randomly sampled in \code{[0,1]^order} and at these points the \code{order}-variate depths of the #' corresponding functional values are computed. #' #' @return Four vectors of length \code{m} of depth values are returned: #' \itemize{ #' \item \code{Simpl_FD} the integrated depth based on the simplicial depth, #' \item \code{Half_FD} the integrated depth based on the halfspace depth, #' \item \code{Simpl_ID} the infimal depth based on the simplicial depth, #' \item \code{Half_ID} the infimal depth based on the halfspace depth. #' } #' In addition, two vectors of length \code{m} of the relative area of smallest depth values is returned: #' \itemize{ #' \item \code{Simpl_IA} the proportions of points at which the depth \code{Simpl_ID} was attained, #' \item \code{Half_IA} the proportions of points at which the depth \code{Half_ID} was attained. #' } #' The values \code{Simpl_IA} and \code{Half_IA} are always in the interval [0,1]. #' They introduce ranking also among functions having the same #' infimal depth value - if two functions have the same infimal depth, the one with larger infimal area #' \code{IA} is said to be less central. #' For \code{order=2} and \code{m=1}, two additional matrices of pointwise depths are also returned: #' \itemize{ #' \item \code{PSD} the matrix of size \code{d*d} containing the computed #' pointwise bivariate simplicial depths used for the computation of \code{Simpl_FD} and \code{Simpl_ID}, #' \item \code{PHD} the matrix of size \code{d*d} containing the computed #' pointwise bivariate halfspace depths used for the computation of \code{Half_FD} and \code{Half_ID}. #' } #' For \code{order=3}, only \code{Half_FD} and \code{Half_ID} are provided. #' #' @references Nagy, S., Gijbels, I. and Hlubinka, D. (2016). #' Weak convergence of discretely observed functional data with applications. #' \emph{Journal of Multivariate Analysis}, \bold{146}, 46--62. #' #' @references Nagy, S., Gijbels, I. and Hlubinka, D. (2017). #' Depth-based recognition of shape outlying functions. #' \emph{Journal of Computational and Graphical Statistics}. To appear. #' #' @examples #' datafA = dataf.population()$dataf[1:20] #' datafB = dataf.population()$dataf[21:50] #' depthf.fd1(datafA,datafB) #' depthf.fd1(datafA,datafB,order=2) #' depthf.fd1(datafA,datafB,order=3,approx=51) #' #' @seealso \code{\link{depthf.fd2}}, \code{\link{infimalRank}} depthf.fd1 = function(datafA,datafB,range=NULL,d=101,order=1,approx=0){ # univariate integrated depth # A functions whose depth I compute, M*D matrix # B functions wrt whose the depth is computed, N*D matrix # both 1dimensional, n*d, n nr of functions, d dimensionality A = dataf2rawfd(datafA, range = range, d = d) B = dataf2rawfd(datafB, range = range, d = d) if(order==1){ A1 = as.vector(A) B1 = as.vector(B) d = dim(A)[2] m = dim(A)[1] n = dim(B)[1] if(dim(B)[2]!=d) stop("dimension mismatch") FD = .Fortran("funD1", as.numeric(A1), # A as.numeric(B1), # B as.integer(m), # m as.integer(n), # n as.integer(d), # d funsdep=as.numeric(rep(-1,m)), funhdep=as.numeric(rep(-1,m)), fIsdep =as.numeric(rep(-1,m)), fIhdep =as.numeric(rep(-1,m)), IAsdep =as.integer(rep(-1,m)), IAhdep =as.integer(rep(-1,m)) ) return(list( Simpl_FD = FD$funsdep, Half_FD = FD$funhdep, Simpl_ID = FD$fIsdep, Half_ID = FD$fIhdep, Simpl_IA = FD$IAsdep/d, Half_IA = FD$IAhdep/d )) } if(order==2) return(DiffDepth(A,B,approx)) if(order==3) return(DiffDepth3D(A,B,approx)) } #' @title Fast computation of the \eqn{L^2} metric for sets of functional data #' #' @description #' Returns the matrix of \eqn{L^2} distances between two sets of functional data. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords metric functional #' #' @details #' For two sets of functional data of sizes \code{m} and \code{n} #' represented by matrices of their functional values, #' this function returns the symmetric matrix of size \code{m*n} whose entry in the #' \code{i}-th row and \code{j}-th column is the approximated \eqn{L^2} distance of the #' \code{i}-th function from the first set, and the \code{j}-th function from the second set. #' This function is utilized in the computation of the h-mode depth. #' #' @param A Functions of the first set, represented by a matrix of their functional values of #' size \code{m*d}. \code{m} stands for the number of functions, \code{d} #' is the number of the equi-distant points in the domain of the data at which the functional #' values of the \code{m} functions are evaluated. #' #' @param B Functions of the second set, represented by a matrix of their functional values of #' size \code{n*d}. \code{n} stands for the number of functions, \code{d} #' is the number of the equi-distant points in the domain of the data at which the functional #' values of the \code{n} functions are evaluated. The grid of observation points for the #' functions \code{A} and \code{B} must be the same. #' #' @return A symmetric matrix of the distances of the functions of size \code{m*n}. #' #' @examples #' datapop = dataf2rawfd(dataf.population()$dataf,range=c(1950,2015),d=66) #' A = datapop[1:20,] #' B = datapop[21:50,] #' L2metric(A,B) #' #' @seealso \code{\link{depthf.hM}} #' @seealso \code{\link{dataf2rawfd}} L2metric = function(A,B){ # computes fast approximation of L2 distance between fctions A and B M = .Fortran("metrl2", as.numeric(A), as.numeric(B), as.integer(m<-nrow(A)), as.integer(n<-nrow(B)), as.integer(d<-length(as.numeric(A))/nrow(A)), m = as.numeric(rep(-1,m*n)))$m return(M = matrix(M,nrow=m)) } depthf.M = function(A,B,q=.2){ # h-mode depth for the L2 metric mdist = L2metric(B,B) mdist2 = L2metric(A,B) hq2 = quantile(mdist[mdist>0],probs=q,type=1) # probs=.2 as in Cuevas et al. (2007) return(rowSums(dnorm(mdist2/hq2))) } #' @title Fast computation of the uniform metric for sets of functional data #' #' @description #' Returns the matrix of \eqn{C} (uniform) distances between two sets of functional data. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords metric functional #' #' @details #' For two sets of functional data of sizes \code{m} and \code{n} #' represented by matrices of their functional values, #' this function returns the symmetric matrix of size \code{m*n} whose entry in the #' \code{i}-th row and \code{j}-th column is the approximated \eqn{C} (uniform) distance of the #' \code{i}-th function from the first set, and the \code{j}-th function from the second set. #' This function is utilized in the computation of the h-mode depth. #' #' @param A Functions of the first set, represented by a matrix of their functional values of #' size \code{m*d}. \code{m} stands for the number of functions, \code{d} #' is the number of the equi-distant points in the domain of the data at which the functional #' values of the \code{m} functions are evaluated. #' #' @param B Functions of the second set, represented by a matrix of their functional values of #' size \code{n*d}. \code{n} stands for the number of functions, \code{d} #' is the number of the equi-distant points in the domain of the data at which the functional #' values of the \code{n} functions are evaluated. The grid of observation points for the #' functions \code{A} and \code{B} must be the same. #' #' @return A symmetric matrix of the distances of the functions of size \code{m*n}. #' #' @examples #' datapop = dataf2rawfd(dataf.population()$dataf,range=c(1950,2015),d=66) #' A = datapop[1:20,] #' B = datapop[21:50,] #' Cmetric(A,B) #' #' @seealso \code{\link{depthf.hM}} #' @seealso \code{\link{dataf2rawfd}} Cmetric = function(A,B){ # computes fast approximation of \eqn{C} distance between fctions A and B M = .Fortran("metrC", as.numeric(A), as.numeric(B), as.integer(m<-nrow(A)), as.integer(n<-nrow(B)), as.integer(d<-length(as.numeric(A))/nrow(A)), m = as.numeric(rep(-1,m*n)))$m return(M = matrix(M,nrow=m)) } depthf.MC = function(A,B,q=.2){ # h-mode depth for the \eqn{C} metric mdist = Cmetric(B,B) mdist2 = Cmetric(A,B) hq2 = quantile(mdist[mdist>0],probs=q,type=1) # probs=.2 as in Cuevas et al. (2007) return(rowSums(dnorm(mdist2/hq2))) } #' @title h-mode depth for functional data #' #' @description #' The h-mode depth of functional real-valued data. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords depth functional #' #' @details #' The function returns the vectors of the sample h-mode depth values. The kernel #' used in the evaluation is the standard Gaussian kernel, the bandwidth value is chosen #' as a quantile of the non-zero distances between the random sample curves. #' #' @param datafA Functions whose depth is computed, represented by a \code{dataf} object of their arguments #' and functional values. \code{m} stands for the number of functions. #' #' @param datafB Random sample functions with respect to which the depth of \code{datafA} is computed. #' \code{datafB} is represented by a \code{dataf} object of their arguments #' and functional values. \code{n} is the sample size. #' The grid of observation points for the #' functions \code{datafA} and \code{datafB} may not be the same. #' #' @param range The common range of the domain where the fucntions \code{datafA} and \code{datafB} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{datafA} and \code{datafB}. #' #' @param d Grid size to which all the functional data are transformed. For depth computation, #' all functional observations are first transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation. #' #' @param norm The norm used for the computation of the depth. Two possible #' choices are implemented: \code{C} for the uniform norm of continuous functions, #' and \code{L2} for the \eqn{L^2} norm of integrable functions. #' #' @param q The quantile used to determine the value of the bandwidth \eqn{h} #' in the computation of the h-mode depth. \eqn{h} is taken as the \code{q}-quantile of #' all non-zero distances between the functions \code{B}. By default, this value is set #' to \code{q=0.2}, in accordance with the choice of Cuevas et al. (2007). #' #' @return A vector of length \code{m} of the h-mode depth values. #' #' @references Cuevas, A., Febrero, M. and Fraiman, R. (2007). #' Robust estimation and classification for functional data via projection-based depth notions. #' \emph{Computational Statistics} \bold{22} (3), 481--496. #' #' @references Nagy, S., Gijbels, I. and Hlubinka, D. (2016). #' Weak convergence of discretely observed functional data with applications. #' \emph{Journal of Multivariate Analysis}, \bold{146}, 46--62. #' #' @examples #' datafA = dataf.population()$dataf[1:20] #' datafB = dataf.population()$dataf[21:50] #' depthf.hM(datafA,datafB) #' depthf.hM(datafA,datafB,norm="L2") depthf.hM = function(datafA,datafB,range=NULL,d=101, norm = c("C","L2"), q=.2){ A = dataf2rawfd(datafA, range = range, d = d) B = dataf2rawfd(datafB, range = range, d = d) norm = match.arg(norm) switch(norm, C = depthf.MC(A,B,q), L2 = depthf.M(A,B,q) ) } AdjBDKernL = function(b,v,J=3){ # v is a matrix m x eval m = dim(v)[1] # sample size eval = length(b) com = combn(m,J) poc = dim(com)[2] s = .Fortran("AdjLP", as.integer(eval), as.integer(J), as.integer(m), as.integer(poc), as.integer(as.vector(com)), as.numeric(b), as.numeric(v), dj = as.numeric(1))$dj return(s) } AdjBDL = function(b,v,J=3,K=1){ eval = length(b) m = dim(v)[1] # sample size sam = sample.int(m,m) # shuffle if (K==0) K=1 # make sure K!=0 nk = m%/%K # subsample size nlast = m %% K+nk # last subsample size Dpom = rep(NA,K) # subsample depth if (K>1){ for (k in 1:(K-1)) if (eval>1) Dpom[k] = AdjBDKernL(b,v[sam[((k-1)*nk+1):(k*nk)],],J) else Dpom[k] = AdjBDKernL(b,t(as.matrix(v[sam[((k-1)*nk+1):(k*nk)],])),J) } {if (nlast>0){ if (eval>1) Dpom[K]= AdjBDKernL(b,v[sam[((K-1)*nk+1):m],],J) else Dpom[K]= AdjBDKernL(b,t(as.matrix(v[sam[((K-1)*nk+1):m],])),J) } else (K=K-1)} return(mean(Dpom[1:K])) } AdjBDsampleL = function(A,B,J=3,K=1){ m = dim(A)[1] hlb = rep(NA,m) for (i in 1:m) hlb[i] = AdjBDL(A[i,],B,J,K) return(hlb) } AdjBDKernC = function(b,v,J=3){ # v ma rozmery m x eval m = dim(v)[1] # sample size eval = length(b) com = combn(m,J) poc = dim(com)[2] s = .Fortran("AdjC", as.integer(eval), as.integer(J), as.integer(m), as.integer(poc), as.integer(as.vector(com)), as.numeric(b), as.numeric(v), dj = as.numeric(1))$dj return(s) } AdjBDC = function(b,v,J=3,K=1){ # v is a matrix m x eval eval = length(b) m = dim(v)[1] # sample size sam = sample.int(m,m) # shuffle if (K==0) K=1 # make sure K!=0 nk = m%/%K # subsample size nlast = m %% K+nk # last subsample size Dpom = rep(NA,K) # subsample depth if (K>1){ for (k in 1:(K-1)) if (eval>1) Dpom[k] = AdjBDKernC(b,v[sam[((k-1)*nk+1):(k*nk)],],J) else Dpom[k] = AdjBDKernC(b,t(as.matrix(v[sam[((k-1)*nk+1):(k*nk)],])),J) } {if (nlast>0){ if (eval>1) Dpom[K]= AdjBDKernC(b,v[sam[((K-1)*nk+1):m],],J) else Dpom[K]= AdjBDKernC(b,t(as.matrix(v[sam[((K-1)*nk+1):m],])),J) } else (K=K-1)} return(mean(Dpom[1:K])) } AdjBDsampleC = function(A,B,J=3,K=1){ m = dim(A)[1] hlb = rep(NA,m) for (i in 1:m) hlb[i] = AdjBDC(A[i,],B,J,K) return(hlb) } #' @title Adjusted band depth for functional data #' #' @description #' The adjusted band depth #' of functional real-valued data based on either the #' \eqn{C} (uniform) norm, or on the \eqn{L^2} norm of functions. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords depth functional #' #' @details #' The function returns the vector of the sample adjusted band depth values. The kernel #' used in the evaluation is the function \eqn{K(u) = exp(-u)}. #' #' @param datafA Functions whose depth is computed, represented by a \code{dataf} object of their arguments #' and functional values. \code{m} stands for the number of functions. #' #' @param datafB Random sample functions with respect to which the depth of \code{datafA} is computed. #' \code{datafB} is represented by a \code{dataf} object of their arguments #' and functional values. \code{n} is the sample size. #' The grid of observation points for the #' functions \code{datafA} and \code{datafB} may not be the same. #' #' @param range The common range of the domain where the fucntions \code{datafA} and \code{datafB} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{datafA} and \code{datafB}. #' #' @param d Grid size to which all the functional data are transformed. For depth computation, #' all functional observations are first transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation, see Nagy et al. (2016). #' #' @param norm The norm used for the computation of the depth. Two possible #' choices are implemented: \code{C} for the uniform norm of continuous functions, #' and \code{L2} for the \eqn{L^2} norm of integrable functions. #' #' @param J The order of the adjusted band depth, that is the maximal number of functions #' taken in a band. Acceptable values are \code{2}, \code{3},... By default this value is set to \code{2}. #' Note that this is NOT the order as #' defined in the order-extended version of adjusted band depths in Nagy et al. (2016), used #' for the detection of shape outlying curves. #' #' @param K Number of sub-samples of the functions from \code{B} taken to speed up the #' computation. By default, sub-sampling is not performed. Values of \code{K} larger than \code{1} #' result in an approximation of the adjusted band depth. #' #' @return A vectors of length \code{m} of the adjusted band depths. #' #' @examples #' datafA = dataf.population()$dataf[1:20] #' datafB = dataf.population()$dataf[21:50] #' depthf.ABD(datafA,datafB) #' depthf.ABD(datafA,datafB,norm="L2") #' #' @seealso \code{\link{depthf.BD}} #' #' @references Gijbels, I., Nagy, S. (2015). #' Consistency of non-integrated depths for functional data. #' \emph{Journal of Multivariate Analysis} \bold{140}, 259--282. #' #' @references Nagy, S., Gijbels, I. and Hlubinka, D. (2016). #' Weak convergence of discretely observed functional data with applications. #' \emph{Journal of Multivariate Analysis}, \bold{146}, 46--62. #' #' @references Nagy, S., Gijbels, I. and Hlubinka, D. (2017). #' Depth-based recognition of shape outlying functions. #' \emph{Journal of Computational and Graphical Statistics}. To appear. depthf.ABD = function(datafA,datafB,range=NULL,d=101, norm = c("C","L2"), J=2, K=1){ A = dataf2rawfd(datafA, range = range, d = d) B = dataf2rawfd(datafB, range = range, d = d) norm = match.arg(norm) switch(norm, C = AdjBDsampleC(A,B,J,K), L2 = AdjBDsampleL(A,B,J,K) ) } DiffDepth = function(A,B,approx=0){ # A functions whose depth I compute # B functions wrt whose the depth is computed # both 1dimensional, n*d, n nr of functions, d dimensionality # approx is number of approximations to be used, 0 for full computation d = dim(A)[2] m = dim(A)[1] n = dim(B)[1] if(dim(B)[2]!=d) stop("dimension mismatch") Av = as.vector(A) Bv = as.vector(B) if (approx>0){ C = combn(1:d,2) # all couples if (approx>=ncol(C)){ ind.sample = 1:ncol(C) approx = ncol(C) } else ind.sample = sample.int(ncol(C),approx) RN = matrix(C[,ind.sample],nrow=2) # RN = random numbers of size 2*REP from 1:d } else RN = 0 FD = .Fortran("DiffD", as.numeric(Av), # A as.numeric(Bv), # B as.integer(m), # m as.integer(n), # n as.integer(d), # d as.integer(approx), # REP as.integer(RN), # RN funsdep=as.numeric(rep(-1,m)), funhdep=as.numeric(rep(-1,m)), funsdepm=as.numeric(rep(-1,m)), funhdepm=as.numeric(rep(-1,m)), Psdep = as.numeric(rep(-1,d*d)), Phdep = as.numeric(rep(-1,d*d)), IAsdep =as.integer(rep(-1,m)), IAhdep =as.integer(rep(-1,m))) if(approx==0){ S_IA = FD$IAsdep/(d^2) H_IA = FD$IAhdep/(d^2) } else { S_IA = FD$IAsdep/(approx) H_IA = FD$IAhdep/(approx) } if (m>1) return(list( Simpl_FD = FD$funsdep, Half_FD = FD$funhdep, Simpl_ID = FD$funsdepm, Half_ID = FD$funhdepm, Simpl_IA = S_IA, Half_IA = H_IA)) if ((m==1)&(approx==0)){ PSD = matrix(FD$Psdep,ncol=d) PSD = pmax(PSD,0) PSD = PSD + t(PSD) diag(PSD) = NA PHD = matrix(FD$Phdep,ncol=d) PHD = pmax(PHD,0) PHD = PHD + t(PHD) diag(PHD) = NA return(list( Simpl_FD = FD$funsdep, Half_FD = FD$funhdep, Simpl_ID = FD$funsdepm, Half_ID = FD$funhdepm, PSD = PSD, PHD = PHD)) } if ((m==1)&(approx>0)){ PSD = matrix(FD$Psdep,ncol=d) for(i in 1:approx) PSD[RN[2*i-1],RN[2*i]]=PSD[RN[2*i],RN[2*i-1]] # symmetrize PSD[PSD==-1] = NA PHD = matrix(FD$Phdep,ncol=d) for(i in 1:approx) PHD[RN[2*i-1],RN[2*i]]=PHD[RN[2*i],RN[2*i-1]] # symmetrize PHD[PHD==-1] = NA return(list( Simpl_FD = FD$funsdep, Half_FD = FD$funhdep, Simpl_ID = FD$funsdepm, Half_ID = FD$funhdepm, PSD = PSD, PHD = PHD)) } } DiffDepth3D = function(A,B,approx=101){ d = dim(A)[2] m = dim(A)[1] n = dim(B)[1] if(dim(B)[2]!=d) stop("dimension mismatch") if(approx==0) approx=101 DT = matrix(nrow=m,ncol=approx) for(a in 1:approx){ I = sample.int(d,3) DT[,a] = depth.halfspace(A[,I],B[,I],exact=TRUE) } D = apply(DT,1,mean) # integrated depth DI = apply(DT,1,min) # infimal depth IA = apply(DT,1,function(x) sum(x==min(x)))/approx # infimal area return(list(Half_FD=D,Half_ID=DI,Half_IA=IA)) } #' @title Bivariate h-mode depth for functional data based on the \eqn{L^2} metric #' #' @description #' The h-mode depth #' of functional bivariate data (that is, data of the form \eqn{X:[a,b] \to R^2}, #' or \eqn{X:[a,b] \to R} and the derivative of \eqn{X}) based on the #' \eqn{L^2} metric of functions. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords depth functional derivatives #' #' @details #' The function returns the vectors of sample h-mode depth values. The kernel #' used in the evaluation is the standard Gaussian kernel, the bandwidth value is chosen #' as a quantile of the non-zero distances between the random sample curves. #' #' @param datafA Bivariate functions whose depth is computed, represented by a multivariate \code{dataf} object of #' their arguments (vector), and a matrix with two columns of the corresponding bivariate functional values. #' \code{m} stands for the number of functions. #' #' @param datafB Bivariate random sample functions with respect to which the depth of \code{datafA} is computed. #' \code{datafB} is represented by a multivariate \code{dataf} object of their arguments #' (vector), and a matrix with two columns of the corresponding bivariate functional values. #' \code{n} is the sample size. The grid of observation points for the #' functions \code{datafA} and \code{datafB} may not be the same. #' #' @param range The common range of the domain where the fucntions \code{datafA} and \code{datafB} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{datafA} and \code{datafB}. #' #' @param d Grid size to which all the functional data are transformed. For depth computation, #' all functional observations are first transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation. #' #' @param q The quantile used to determine the value of the bandwidth \eqn{h} #' in the computation of the h-mode depth. \eqn{h} is taken as the \code{q}-quantile of #' all non-zero distances between the functions \code{B}. By default, this value is set #' to \code{q=0.2}, in accordance with the choice of Cuevas et al. (2007). #' #' @return Three vectors of length \code{m} of h-mode depth values are returned: #' \itemize{ #' \item \code{hM} the unscaled h-mode depth, #' \item \code{hM_norm} the h-mode depth \code{hM} linearly transformed so that its range is [0,1], #' \item \code{hM_norm2} the h-mode depth \code{FD} linearly transformed by a transformation such that #' the range of the h-mode depth of \code{B} with respect to \code{B} is [0,1]. This depth may give negative values. #' } #' #' @references Cuevas, A., Febrero, M. and Fraiman, R. (2007). #' Robust estimation and classification for functional data via projection-based depth notions. #' \emph{Computational Statistics} \bold{22} (3), 481--496. #' #' @examples #' datafA = dataf.population()$dataf[1:20] #' datafB = dataf.population()$dataf[21:50] #' #' datafA2 = derivatives.est(datafA,deriv=c(0,1)) #' datafB2 = derivatives.est(datafB,deriv=c(0,1)) #' #' depthf.hM2(datafA2,datafB2) #' #' depthf.hM2(datafA2,datafB2)$hM #' # depthf.hM2(cbind(A2[,,1],A2[,,2]),cbind(B2[,,1],B2[,,2]))$hM #' # the two expressions above should give the same result #' #' @seealso \code{\link{depthf.hM}} depthf.hM2 = function(datafA,datafB,range=NULL,d=101,q=.2){ # h-Mode depth Cuevas_etal2007 # A functions whose depth is computed : either M*D matrix (M functions, D points per function), # or M*D*2 array (2 derivative levels), # B functions of random sample : as A # q : quantile, bandwidth value in the resulting kernel estimate # computes the same as depthf.M (with cbind-ed 2 levels if derivatives are involved) # depthf.M(cbind(A[,,1],A[,,2]),cbind(B[,,1],B[,,2])) # depthf.M2(A,B)$FD # depthf.M2(cbind(A[,,1],A[,,2]),cbind(B[,,1],B[,,2]))$FD # all should give the same result A = dataf2rawfd(datafA, range = range, d = d) B = dataf2rawfd(datafB, range = range, d = d) # q=.2 Cuevas et al, 0.15 default v usc.fda M = .Fortran( "funMD", as.numeric(A), as.numeric(B), as.integer(m<-nrow(A)), as.integer(n<-nrow(B)), as.integer(d<-length(as.numeric(A))/nrow(A)), as.numeric(q), md = as.numeric(rep(-1,m)) )$md # because of scaling in depth.mode() in fda.usc M.ori = .Fortran( "funMD", as.numeric(B), as.numeric(B), as.integer(n), as.integer(n), as.integer(d), as.numeric(q), md = as.numeric(rep(-1,n)) )$md Mn = (M-min(M))/(max(M)-min(M)) Mn2 = (M-min(M.ori))/(max(M.ori)-min(M.ori)) return(list(hM = M, hM_norm = Mn, hM_norm2 = Mn2)) } #' @title Univariate random projection depths for functional data #' #' @description #' Random projection depth and random functional depth for functional data. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords depth functional #' #' @details #' The function returns the vectors of sample random projection, and random functional depth values. #' The random projection depth described in Cuevas et al. (2007) is based on the average univariate depth #' of one-dimensional projections of functional data. The projections are taken randomly as a sample of standard #' normal \code{d}-dimensional random variables, where \code{d} stands for the dimensionality of the discretized #' functional data. #' #' The random functional depth (also called random Tukey depth, or random halfspace depth) is described in #' Cuesta-Albertos and Nieto-Reyes (2008). The functional data are projected into the real line in random #' directions as for the random projection depths. Afterwards, an approximation of the halfspace (Tukey) depth #' based on this limited number of univariate projections is assessed. #' #' @param datafA Functions whose depth is computed, represented by a \code{dataf} object of their arguments #' and functional values. \code{m} stands for the number of functions. #' #' @param datafB Random sample functions with respect to which the depth of \code{datafA} is computed. #' \code{datafB} is represented by a \code{dataf} object of their arguments #' and functional values. \code{n} is the sample size. #' The grid of observation points for the #' functions \code{datafA} and \code{datafB} may not be the same. #' #' @param range The common range of the domain where the fucntions \code{datafA} and \code{datafB} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{datafA} and \code{datafB}. #' #' @param d Grid size to which all the functional data are transformed. For depth computation, #' all functional observations are first transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation. #' #' @param nproj Number of projections taken in the computation of the random projection depth. By default taken #' to be \code{51}. #' #' @param nproj2 Number of projections taken in the computation of the random functional depth. By default taken #' to be \code{5}. \code{nproj2} should be much smaller than \code{d}, the dimensionality of the discretized #' functional data. #' #' @return Three vectors of depth values of length \code{m} are returned: #' \itemize{ #' \item \code{Simpl_FD} the random projection depth based on the univariate simplicial depth, #' \item \code{Half_FD} the random projection depth based on the univariate halfspace depth, #' \item \code{RHalf_FD} the random halfspace depth. #' } #' #' @references Cuevas, A., Febrero, M. and Fraiman, R. (2007). #' Robust estimation and classification for functional data via projection-based depth notions, #' \emph{Computational Statistics} \bold{22} (3), 481--496. #' #' @references Cuesta-Albertos, J.A. and Nieto-Reyes, A. (2008). #' The random Tukey depth. #' \emph{Computational Statistics & Data Analysis} \bold{52} (11), 4979--4988. #' #' @examples #' datafA = dataf.population()$dataf[1:20] #' datafB = dataf.population()$dataf[21:50] #' #' depthf.RP1(datafA,datafB) #' #' @seealso \code{\link{depthf.RP2}} depthf.RP1 = function(datafA,datafB,range=NULL,d=101,nproj=50,nproj2=5){ # simple 1D projection depth # nproj nr of projections taken # # SFD : projection \eqn{L^2} -> R -> mean of univariate Simplicial Depth (nproj projections) # HFD : projection \eqn{L^2} -> R -> mean of univariate Halfspace Depth (nproj projections) # RFD : projection \eqn{L^2} -> R -> infimum of univariate Halfspace Depths (nproj2 projections) A = dataf2rawfd(datafA, range = range, d = d) B = dataf2rawfd(datafB, range = range, d = d) A1 = as.vector(A) B1 = as.vector(B) d = dim(A)[2] m = dim(A)[1] n = dim(B)[1] V = rnorm(nproj*d) if(dim(B)[2]!=d) stop("dimension mismatch") FD = .Fortran("funRPD1", as.numeric(A1), # A as.numeric(B1), # B as.integer(m), # m as.integer(n), # n as.integer(d), # d as.integer(nproj), # nproj as.integer(nproj2), # nproj2 as.numeric(V), # projections funsdep=as.numeric(rep(-1,m)), funhdep=as.numeric(rep(-1,m)), funrdep=as.numeric(rep(-1,m))) return(list(Simpl_FD = FD$funsdep, Half_FD = FD$funhdep, RHalf_FD = FD$funrdep)) } #' @title Bivariate integrated and infimal depth for functional data #' #' @description #' Integrated and infimal depths #' of functional bivariate data (that is, data of the form \eqn{X:[a,b] \to R^2}, #' or \eqn{X:[a,b] \to R} and the derivative of \eqn{X}) based on the #' bivariate halfspace and simplicial depths. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords depth functional derivatives #' #' @details #' The function returns the vectors of sample integrated and infimal depth values. #' #' @param datafA Bivariate functions whose depth is computed, represented by a multivariate \code{dataf} object of #' their arguments (vector), and a matrix with two columns of the corresponding bivariate functional values. #' \code{m} stands for the number of functions. #' #' @param datafB Bivariate random sample functions with respect to which the depth of \code{datafA} is computed. #' \code{datafB} is represented by a multivariate \code{dataf} object of their arguments #' (vector), and a matrix with two columns of the corresponding bivariate functional values. #' \code{n} is the sample size. The grid of observation points for the #' functions \code{datafA} and \code{datafB} may not be the same. #' #' @param range The common range of the domain where the fucntions \code{datafA} and \code{datafB} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{datafA} and \code{datafB}. #' #' @param d Grid size to which all the functional data are transformed. For depth computation, #' all functional observations are first transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation. #' #' @return Four vectors of length \code{m} are returned: #' \itemize{ #' \item \code{Simpl_FD} the integrated depth based on the bivariate simplicial depth, #' \item \code{Half_FD} the integrated depth based on the bivariate halfspace depth, #' \item \code{Simpl_ID} the infimal depth based on the bivariate simplicial depth, #' \item \code{Half_ID} the infimal depth based on the bivariate halfspace depth. #' } #' In addition, two vectors of length \code{m} of the relative area of smallest depth values is returned: #' \itemize{ #' \item \code{Simpl_IA} the proportions of points at which the depth \code{Simpl_ID} was attained, #' \item \code{Half_IA} the proportions of points at which the depth \code{Half_ID} was attained. #' } #' The values \code{Simpl_IA} and \code{Half_IA} are always in the interval [0,1]. #' They introduce ranking also among functions having the same #' infimal depth value - if two functions have the same infimal depth, the one with larger infimal area #' \code{IA} is said to be less central. #' #' @references Hlubinka, D., Gijbels, I., Omelka, M. and Nagy, S. (2015). #' Integrated data depth for smooth functions and its application in supervised classification. #' \emph{Computational Statistics}, \bold{30} (4), 1011--1031. #' #' @references Nagy, S., Gijbels, I. and Hlubinka, D. (2017). #' Depth-based recognition of shape outlying functions. #' \emph{Journal of Computational and Graphical Statistics}. To appear. #' #' @examples #' datafA = dataf.population()$dataf[1:20] #' datafB = dataf.population()$dataf[21:50] #' #' dataf2A = derivatives.est(datafA,deriv=c(0,1)) #' dataf2B = derivatives.est(datafB,deriv=c(0,1)) #' depthf.fd2(dataf2A,dataf2B) #' #' @seealso \code{\link{depthf.fd1}}, \code{\link{infimalRank}} depthf.fd2 = function(datafA,datafB,range=NULL,d=101){ # A functions whose depth I compute # B functions wrt whose the depth is computed # both 2dimensional, n*d*2, n nr of functions, d dimensionality # now provides also infimal depth (inf_D2) A = dataf2rawfd(datafA, range = range, d = d) B = dataf2rawfd(datafB, range = range, d = d) A1 = as.vector(A[,,1]) A2 = as.vector(A[,,2]) B1 = as.vector(B[,,1]) B2 = as.vector(B[,,2]) d = dim(A)[2] m = dim(A)[1] n = dim(B)[1] if(dim(B)[2]!=d) stop("dimension mismatch") FD = .Fortran("funD2", as.numeric(A1), # A1 as.numeric(A2), # A2 as.numeric(B1), # B1 as.numeric(B2), # B2 as.integer(m), # m as.integer(n), # n as.integer(d), # d funsdep=as.numeric(rep(-1,m)), funhdep=as.numeric(rep(-1,m)), fIsdep =as.numeric(rep(-1,m)), fIhdep =as.numeric(rep(-1,m)), IAsdep =as.integer(rep(-1,m)), IAhdep =as.integer(rep(-1,m)) ) return(list( Simpl_FD = FD$funsdep, Half_FD = FD$funhdep, Simpl_ID = FD$fIsdep, Half_ID = FD$fIhdep, Simpl_IA = FD$IAsdep/d, Half_IA = FD$IAhdep/d )) } #' @title Bivariate random projection depths for functional data #' #' @description #' Double random projection depths of functional bivariate data (that is, data of the form \eqn{X:[a,b] \to R^2}, #' or \eqn{X:[a,b] \to R} and the derivative of \eqn{X}). #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords depth functional derivatives #' #' @details #' The function returns the vectors of sample double random projection depth values. #' The double random projection depths are described in Cuevas et al. (2007). They are of two types: RP2 type, and #' RPD type. Both types of depths are based on bivariate projections of the bivariate functional data. #' These projections are taken randomly as a sample of standard #' normal \code{d}-dimensional random variables, where \code{d} stands for the dimensionality of the internally #' represented discretized #' functional data. For RP2 type depths, the average bivariate depth of the projected quantities is assessed. #' For RPD type depths, further univariate projections of these bivariate projected quantities are evaluated, and #' based on these final univariate quantities, the average univariate depth is computed. #' #' @param datafA Bivariate functions whose depth is computed, represented by a multivariate \code{dataf} object of #' their arguments (vector), and a matrix with two columns of the corresponding bivariate functional values. #' \code{m} stands for the number of functions. #' #' @param datafB Bivariate random sample functions with respect to which the depth of \code{datafA} is computed. #' \code{datafB} is represented by a multivariate \code{dataf} object of their arguments #' (vector), and a matrix with two columns of the corresponding bivariate functional values. #' \code{n} is the sample size. The grid of observation points for the #' functions \code{datafA} and \code{datafB} may not be the same. #' #' @param range The common range of the domain where the fucntions \code{datafA} and \code{datafB} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{datafA} and \code{datafB}. #' #' @param d Grid size to which all the functional data are transformed. For depth computation, #' all functional observations are first transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation. #' #' @param nproj Number of projections taken in the computation of the double random projection depth. By default taken #' to be \code{51}. #' #' @return Five vectors of length \code{m} are returned: #' \itemize{ #' \item \code{Simpl_FD} the double random projection depth RP2 based on the bivariate simplicial depth, #' \item \code{Half_FD} the double random projection depth RP2 based on the bivariate halfspace depth, #' \item \code{hM_FD} the double random projection depth RP2 based on the bivariate h-mode depth, #' \item \code{Simpl_DD} the double random projection depth RPD based on the univariate simplicial depth, #' \item \code{Half_DD} the random projection depth RPD based on the univariate halfspace depth, #' } #' #' @references Cuevas, A., Febrero, M. and Fraiman, R. (2007). #' Robust estimation and classification for functional data via projection-based depth notions. #' \emph{Computational Statistics} \bold{22} (3), 481--496. #' #' @examples #' datafA = dataf.population()$dataf[1:20] #' datafB = dataf.population()$dataf[21:50] #' #' dataf2A = derivatives.est(datafA,deriv=c(0,1)) #' dataf2B = derivatives.est(datafB,deriv=c(0,1)) #' depthf.RP2(dataf2A,dataf2B) #' #' #' @seealso \code{\link{depthf.RP1}} depthf.RP2 = function(datafA,datafB,range=NULL,d=101,nproj=51){ # double projection depth # nproj nr of projections taken # # SFD : (\eqn{L^2})^2 -> R^2 -> 2D Mean Simplicial Depth # HFD : (\eqn{L^2})^2 -> R^2 -> 2D Mean Halfspace Depth # MFD : (\eqn{L^2})^2 -> R^2 -> 2D Mean h-Mode Depth # SDD : (\eqn{L^2})^2 -> R^2 -> R^1 -> Mean Simplicial Depth # HDD : (\eqn{L^2})^2 -> R^2 -> R^1 -> Mean Halfspace Depth # A = dataf2rawfd(datafA, range = range, d = d) B = dataf2rawfd(datafB, range = range, d = d) q = .2 # quantile for modal depth A1 = as.vector(A[,,1]) A2 = as.vector(A[,,2]) B1 = as.vector(B[,,1]) B2 = as.vector(B[,,2]) d = dim(A)[2] m = dim(A)[1] n = dim(B)[1] V = rnorm(nproj*d+nproj*2) if(dim(B)[2]!=d) stop("dimension mismatch") FD = .Fortran("funRPD2", as.numeric(A1), # A1 as.numeric(A2), # A2 as.numeric(B1), # B1 as.numeric(B2), # B2 as.integer(m), # m as.integer(n), # n as.integer(d), # d as.integer(nproj), # nproj as.numeric(V), # projections as.numeric(q), # q funsdep=as.numeric(rep(-1,m)), funhdep=as.numeric(rep(-1,m)), funmdep=as.numeric(rep(-1,m)), funsddep=as.numeric(rep(-1,m)), funhddep=as.numeric(rep(-1,m))) return(list(Simpl_FD = FD$funsdep, Half_FD = FD$funhdep, hM_FD = FD$funmdep, Simpl_DD = FD$funsddep, Half_DD = FD$funhddep)) } #' @title Half-region depth for functional data #' #' @description #' The half-region depth #' for functional real-valued data. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords depth functional #' #' @details #' The function returns the vector of the sample half-region depth values. #' #' @param datafA Functions whose depth is computed, represented by a \code{dataf} object of their arguments #' and functional values. \code{m} stands for the number of functions. #' #' @param datafB Random sample functions with respect to which the depth of \code{datafA} is computed. #' \code{datafB} is represented by a \code{dataf} object of their arguments #' and functional values. \code{n} is the sample size. #' The grid of observation points for the #' functions \code{datafA} and \code{datafB} may not be the same. #' #' @param range The common range of the domain where the fucntions \code{datafA} and \code{datafB} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{datafA} and \code{datafB}. #' #' @param d Grid size to which all the functional data are transformed. For depth computation, #' all functional observations are first transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation. #' #' @return A vector of length \code{m} of the half-region depth values. #' #' @references Lopez-Pintado, S. and Romo, J. (2011). #' A half-region depth for functional data. #' \emph{Computational Statistics & Data Analysis} \bold{55} (4), 1679--1695. #' #' @examples #' datafA = dataf.population()$dataf[1:20] #' datafB = dataf.population()$dataf[21:50] #' depthf.HR(datafA,datafB) depthf.HR = function(datafA,datafB,range=NULL,d=101){ A = dataf2rawfd(datafA, range = range, d = d) B = dataf2rawfd(datafB, range = range, d = d) d = dim(A)[2] m = dim(A)[1] n = dim(B)[1] if(dim(B)[2]!=d) stop("dimension mismatch") FD = .Fortran("HRD", as.numeric(A), # A as.numeric(B), # B as.integer(m), # m as.integer(n), # n as.integer(d), # d FD=as.numeric(rep(-1,m))) return(FD$FD) } #' @title Band depth for functional data #' #' @description #' The (unadjusted) band depth #' for functional real-valued data of order \code{J=2}. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords depth functional #' #' @details #' The function returns the vector of the sample (unadjusted) band depth values. #' #' @param datafA Functions whose depth is computed, represented by a \code{dataf} object of their arguments #' and functional values. \code{m} stands for the number of functions. #' #' @param datafB Random sample functions with respect to which the depth of \code{datafA} is computed. #' \code{datafB} is represented by a \code{dataf} object of their arguments #' and functional values. \code{n} is the sample size. #' The grid of observation points for the #' functions \code{datafA} and \code{datafB} may not be the same. #' #' @param range The common range of the domain where the fucntions \code{datafA} and \code{datafB} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{datafA} and \code{datafB}. #' #' @param d Grid size to which all the functional data are transformed. For depth computation, #' all functional observations are first transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation. #' #' @return A vector of length \code{m} of the band depth values. #' #' @references Lopez-Pintado, S. and Romo, J. (2009), On the concept of depth for functional data, #' \emph{J. Amer. Statist. Assoc.} \bold{104} (486), 718 - 734. #' #' @examples #' datafA = dataf.population()$dataf[1:20] #' datafB = dataf.population()$dataf[21:50] #' depthf.BD(datafA,datafB) #' #' @seealso \code{\link{depthf.ABD}}, \code{\link{depthf.fd1}} depthf.BD = function(datafA,datafB,range=NULL,d=101){ A = dataf2rawfd(datafA, range = range, d = d) B = dataf2rawfd(datafB, range = range, d = d) d = dim(A)[2] m = dim(A)[1] n = dim(B)[1] if(dim(B)[2]!=d) stop("dimension mismatch") FD = .Fortran("BD", as.numeric(A), # A as.numeric(B), # B as.integer(m), # m as.integer(n), # n as.integer(d), # d FD=as.numeric(rep(-1,m)) ) return(FD$FD) } #' @title Adjusted ranking of functional data based on the infimal depth #' #' @description #' Returns a vector of adjusted depth-based ranks for infimal depth for functional data. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords rank depth functional #' #' @details #' Infimal depths for functional data tend to give to many functional observations the same #' value of depth. Using this function, the data whose depth is the same is ranked according #' to the infimal area indicator. This indicator is provided in functions \code{depthf.fd1} along #' the value of the infimal depth. #' #' @param ID The vector of infimal depths of the curves of length \code{n}. #' #' @param IA The vector of the infimal areas corresponding to the infimal depths from \code{ID} #' of length \code{n}. #' #' @param ties.method Parameter for breaking ties in infimal area index. By default \code{max}, see #' \code{rank}. #' #' @return A vector of length \code{n}. Low depth values mean high ranks, i.e. potential outlyingess. #' If some of the infimal depths are identical, the ranking of these functions is made according to the #' values of the infimal area. There, higher infimal area index means higher rank, i.e. non-centrality. #' #' @references Nagy, S., Gijbels, I. and Hlubinka, D. (2017). #' Depth-based recognition of shape outlying functions. #' \emph{Journal of Computational and Graphical Statistics}. To appear. #' #' @examples #' datafA = dataf.population()$dataf[1:20] #' datafB = dataf.population()$dataf[21:50] #' D = depthf.fd1(datafA,datafB) #' infimalRank(D$Half_ID,D$Half_IA) #' #' ID = c(0,1,0,0,0,1,1) #' IA = c(2,3,1,0,2,4,1) #' infimalRank(ID,IA) infimalRank = function(ID,IA,ties.method="max"){ # finds the adjusted rank for appropriate for the infimal depth for functional data # ID is the vector of infimal depths # IA is the vector of the corresponding infimal areas # returns a vector of ranks n = length(ID) if(length(IA)!=n) stop("Lengths of the vectors differ") U = sort(unique(ID),decreasing=TRUE) R = rep(NA,n) cR = 0 # currently assigned rank for(u in U){ Iu = (ID==u) R[Iu] = cR+rank(IA[Iu],ties.method=ties.method) cR = sum(!is.na(R)) } return(R) } #' @title Estimation of the first two derivatives for functional data #' #' @description #' Returns the estimated values of derivatives of functional data. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords derivatives kernel functional #' #' @details #' If the input \code{dataf} is a functional random sample of size \code{m}, #' the function returns a \code{dataf} object of \code{nd}-dimensional functional data, where #' in the elements of the vector-valued functional data represent the estimated values of the #' derivatives of \code{dataf}. All derivatives are evaluated at an equi-distant grid of \code{d} #' points in the domain given by \code{range}. \code{nd} here stands for \code{1}, \code{2} or \code{3}, #' depending on how many derivatives of \code{dataf} are #' requested to be computed. For the estimation, functions \code{D1ss} and \code{D2ss} from the package #' \code{sfsmisc} are utilized. #' #' @param dataf Functional dataset, represented by a \code{dataf} object of their arguments #' and functional values. \code{m} stands for the number of functions. #' #' @param range The common range of the domain where the fucntions \code{dataf} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{dataf}. #' #' @param d Grid size to which all the functional data are transformed. For computation, #' all functional observations are first transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation. #' #' @param spar If provided, this parameter is passed to functions \code{D1ss} and \code{D2ss} from package \code{sfsmisc} #' as the value of the smoothing spline parameter in order to numerically approximate #' the derivatives of \code{dataf}. #' #' @param deriv A vector composed of \code{0}, \code{1}, and \code{2} of the demanded #' functional values / derivatives of the functions in the rows of \code{dataf}. #' \code{0} stands for the functional values, \code{1} for the first derivatives, #' \code{2} for the second derivatives. #' #' @return A multivariate \code{dataf} object of the functional values and / or the derivatives of \code{dataf}. #' The dimensionality of the vector-valued functional data is \code{nd}. The arguments of the data are all equal to #' an equi-distant grid of \code{d} points in the domain given by \code{range}. \code{nd} is the demanded number #' of derivatives at the output, i.e. the length of the vector \code{deriv}. #' #' @seealso \code{\link[sfsmisc]{D1ss}} in package sfsmisc #' @seealso \code{\link[sfsmisc]{D2ss}} in package sfsmisc #' #' @examples #' dataf = dataf.population()$dataf #' derivatives.est(dataf,deriv=c(0,1,2)) derivatives.est = function(dataf,range=NULL,d=101,spar=NULL,deriv=c(0,1)){ X = dataf2rawfd(dataf, range = range, d = d) derd = length(deriv) XK = array(dim=c(dim(X),derd)) # range construction rng = numeric(0) for (df in dataf) rng = range(c(rng,df$args)) # common range of all the data if(!is.null(range)){ if(!(length(range) == 2 && is.numeric(range) && range[1]<=rng[1] && range[2]>=rng[2])) stop("Argument 'range' must be a numeric vector of two components that defines the range of the domain of functional data. All functional data must have 'args' vales inside this domain.") } else range = rng if(!(range[1]1) stop("works only for a single function A (matrix 1*d)") method = match.arg(method) # # diagonal d = ncol(A) HDP = matrix(nrow=nrow(B)+1,ncol=d) SDP = HDP for(i in 1:d){ FL = ecdf(B[,i]) FU = ecdf(-B[,i]) HDP[,i] = pmin(FL(rbind(B,A)[,i]),FU(-rbind(B,A)[,i])) SDP[,i] = FL(rbind(B,A)[,i])*FU(-rbind(B,A)[,i])*nrow(B)^2/choose(nrow(B),2) } if(order==2){ DD = DiffDepth(A,B,approx) if (method=="halfspace") diag(DD$PHD) = HDP[nrow(B)+1,] else diag(DD$PSD) = SDP[nrow(B)+1,] if (plot){ if (method=="halfspace") filled.contour(DD$PHD,main=title,color.palette= function(x)rev(heat.colors(x))) else filled.contour(DD$PSD,main=title,color.palette = function(x)rev(heat.colors(x))) } return(DD) } if(order==1){ nfun = min(nrow(B),nfun) t = seq(0,1,length=ncol(B)) DD = list(Simpl_FD = mean(SDP[nrow(B)+1,]), Half_FD = mean(HDP[nrow(B)+1,]), Simpl_ID = min(SDP[nrow(B)+1,]), Half_ID = min(HDP[nrow(B)+1,]), PHD = HDP[nrow(B)+1,], PSD = SDP[nrow(B)+1,]) if (plot) { if (method=="halfspace"){ plot(rep(t,nrow(B)+1),HDP,type="n",main=title,ylim = c(0,max(HDP)),ann=FALSE) for(i in 1:nfun) lines(t,HDP[i,],lwd=.75,lty=2) lines(t,HDP[nrow(B)+1,],col=2,lwd=3,lty=1) } else { plot(rep(t,nrow(B)+1),SDP,type="n",main=title,ylim = c(0,max(SDP)),ann=FALSE) for(i in 1:nfun) lines(t,SDP[i,],lwd=.75,lty=2) lines(t,SDP[nrow(B)+1,],col=2,lwd=3,lty=1) } } return(DD) } } #' @title Functional depth-based shape outlier detection #' #' @description #' Detects functional outliers of first three orders, based on the order extended integrated depth for functional data. #' #' @author Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} #' @keywords depth #' @keywords outlier #' @keywords functional #' #' @details #' Using the procedure described in Nagy et al. (2016), the function uses the order extended integrated depths for functions, #' see \code{\link{depthf.fd1}} and \code{\link{shape.fd.analysis}}, to perform informal functional shape outlier detection. #' Outliers of the first order (horizontal shift outliers) are found as the functions with \code{q} \% of smallest (first order) #' integrated depth values. Second and third order outliers (shape outliers) are found using the extension of the boxplot method #' for depths as described in the paper Nagy et al. (2016). #' #' @param dataf Functional dataset, represented by a \code{dataf} object of their arguments #' and functional values. \code{n} stands for the number of functions. #' #' @param range The common range of the domain where the fucntions \code{dataf} are observed. #' Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in #' \code{dataf}. #' #' @param d Grid size to which all the functional data are transformed. For depth computation, #' all functional observations are first transformed into vectors of their functional values of length \code{d} #' corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these #' points are reconstructed using linear interpolation, and extrapolation. #' #' @param q The quantile presenting a threshold for the first order outlier detection. Functions with first order integrated depth #' smaller than the \code{q} quantile of this sample of depths are flagged as potential outliers. If set to \code{NULL}, the #' the outliers are detected from the first order integrated depth after the log-transformation, as for higher order outliers. #' #' @param method The depth that is used in the diagnostic plot. possible values are \code{halfspace} for #' the halfspace depth, or \code{simplicial} for the simplicial depth. #' #' @param approx For the computation of the third order integrated depth, #' the number of approximations used in the computation of the order extended depth. By default #' this is set to \code{100}, meaning that \code{100} #' trivariate points are randomly sampled in unit cube, and at these points the trivariate depths of the #' corresponding functional values. May be set to \code{0} to compute the depth at all possible \code{d^3} #' combinations of the points in the domain. This choice may result in very slow computation, see also \code{\link{depthf.fd1}}. #' #' @param print If the rows of \code{X} are named, \code{print=TRUE} enables a graphical output when the names of the outlying curves #' are displayed. #' #' @param plotpairs If set to \code{TRUE}, the scatter plot of the computed depths for orders \code{1}, \code{2} and \code{3} is #' is displayed. Here, the depths corresponding to the flagged outliers are plotted in colour. #' #' @param max.order Maximal order of shape outlyingness to be computed, can be set to \code{1}, \code{2}, or \code{3}. #' #' @param exclude.out Logical variable; exclude the detected lower order outliers in the flagging process? By default \code{TRUE}. #' #' @param output Output method, can be set to \code{matrix} for a matrix with logical entries (\code{TRUE} for outliers), or \code{list} for #' a list of outliers. #' #' @param identifiers A vector of names for the data observations. Facilitates identification of outlyig functions. #' #' @return A matrix of logical values of size \code{n*4}, where \code{n} is the sample size. In the first three rows indicators of outlyingness #' of the corresponding functions for orders \code{1}, \code{2} and \code{3} are given, in the fourth row the indicator of outlyingness #' with respect to the comparison of the first, and third order depths is given. That is, the fist row corresponds to the first order outliers, #' the second row to the second order outliers, and the last two rows formally to the third order outliers. Please consult Nagy et al. (2016) #' to interpret the notion of shape outlyingness. #' #' @references Nagy, S., Gijbels, I. and Hlubinka, D. (2017). #' Depth-based recognition of shape outlying functions. #' \emph{Journal of Computational and Graphical Statistics}. To appear. #' #' @examples #' n = 30 #' dataf = dataf.population()$dataf[1:n] #' shape.fd.outliers(dataf,print=TRUE,plotpairs=TRUE, #' identifiers=unlist(dataf.population()$identifier)[1:n]) #' #' @seealso \code{\link{depthf.fd1}}, \code{\link{shape.fd.analysis}} shape.fd.outliers = function(dataf,range=NULL,d=101,q=.05,method=c("halfspace","simplicial"), approx=100,print=FALSE,plotpairs=FALSE,max.order=3, exclude.out = TRUE, output=c("matrix","list"), identifiers = NULL){ X = dataf method = match.arg(method) output = match.arg(output) if(is.null(identifiers) | length(identifiers)!=length(dataf)){ print = FALSE warning("Inconsistent identifiers, print is set to FALSE") } if((max.order>3)|(max.order<1)){ max.order=3 warning("Maximal order set to 3") } if (max.order==3){ if(approx<50){ approx=50 warning("Too small approx value, approximation set to 50") } } n = length(X) # set up the depths D = matrix(nrow=max.order,ncol=n) if(method=="halfspace"){ D[1,] = depthf.fd1(X,X)$Half_FD if(max.order>1) D[2,] = depthf.fd1(X,X,range=range,d=d,order=2)$Half_FD if(max.order>2) D[3,] = depthf.fd1(X,X,range=range,d=d,order=3,approx=approx)$Half_FD } if(method=="simplicial"){ D[1,] = depthf.fd1(X,X)$Simpl_FD if(max.order>1) D[2,] = depthf.fd1(X,X,range=range,d=d,order=2)$Simpl_FD if(max.order>2) D[3,] = depthf.fd1(X,X,range=range,d=d,order=3,approx=approx)$Simpl_FD } D = apply(D,1:2,function(x) max(0,x-1/n)) if(max.order==1) out.rows = 1 if(max.order==2) out.rows = 2 if(max.order==3) out.rows = 4 O = matrix(nrow=out.rows,ncol=ncol(D)) # compute the outliers if (print){ colnames(O) = identifiers print("first order outliers: ") } if(!is.null(q)) O[1,]<-D[1,]B$stats[5,])|(S==Inf)) } if (print) print(which(O[1,])) if(max.order>1) for(i in 1:(max.order-1)){ if (print){ if (i==1) print("second order outliers: ") if (i==2) print("third order outliers: ") } S = -log(D[i+1,]/D[i,]) S[D[i+1,]==0] = Inf B = boxplot(S,plot=FALSE) if(exclude.out) O[i+1,]<-(((S>B$stats[5,])|(S==Inf))&(O[i,]==FALSE)&(O[1,]==FALSE)) if(!exclude.out) O[i+1,]<-((S>B$stats[5,])|(S==Inf)) if (print) print(which(O[i+1,])) } if(max.order==3){ if (print) print("1/3 outliers") S = -log(D[3,]/D[1,]) S[D[3,]==0] = Inf B = boxplot(S,plot=FALSE) if(exclude.out) O[4,]<-(((S>B$stats[5,])|(S==Inf))&(O[3,]==FALSE)&(O[2,]==FALSE)&(O[1,]==FALSE)) if(!exclude.out) O[4,]<-((S>B$stats[5,])|(S==Inf)) if (print) print(which(O[4,])) } if(max.order==1) rownames(O) = "1st" if(max.order==2) rownames(O) = c("1st","2nd") if(max.order==3){ rownames(O) = c("1st","2nd","3rd","1/3rd") if (plotpairs) DpairsPlot(D,O) } if(output=="matrix") return(O) if(output=="list") return(apply(O,1,which)) } DpairsPlot = function(DB2,O,sp.index=NULL){ # plots a 2x2 scatter of all the pairs of order extended integrated depth values # for orders 1, 2, and 3 as presented in the Nagy et al. (2016), Figure 5 cexaxis = 1.3 cexlab = 1.5 n = ncol(O) col = rep("grey",n) colout1 = "olivedrab3" colout2 = "navy" colout3 = "darkorange" colout = c(colout1,colout2,colout3) col[O[1,]] = colout1 col[O[2,]] = colout2 col[O[3,]] = colout3 col[O[4,]] = colout3 pch = rep(16,n) pch[O[1,]] = 1 pch[O[2,]] = 2 pch[O[3,]] = 18 pch[O[4,]] = 18 cx = 1.5 cex = rep(1,n) cex[O[1,]] = cx cex[O[2,]] = cx cex[O[3,]] = cx cex[O[4,]] = cx OI = (colSums(O)>0) # outlier indicator op<-par(cex.axis=cexaxis,cex.lab=cexlab,mfrow = c(2, 2), # 2x2 layout oma = c(3, 3.5, 0.45, 0.45), # two rows of text at the outer left and bottom margin mar = c(1, 1, 0, 0), # space for one row of text at ticks and to separate plots mgp = c(2, 1, 0), # axis label at 2 rows distance, tick labels at 1 row xpd = NA) # allow content to protrude into outer margin (and beyond) plot(c(0,M<-max(DB2)),c(0,max(DB2)),type="n",ann=FALSE,axes=FALSE,frame=TRUE) axis(2) title(ylab=expression(FD[2]),line=2.5) points(DB2[1,],DB2[2,],col=col,pch=pch,cex=cex,lwd=1.35*cex) for(i in 1:n) if(OI[i]) points(DB2[1,i],DB2[2,i],col=col[i],pch=pch[i],cex=cex[i],lwd=1.35*cex[i]) if (!is.null(sp.index)) points(DB2[1,sp.index],DB2[2,sp.index],pch=16,col="orange") segments(0,0,M,M,lty=3,lwd=2) plot(c(0,1),c(0,1),type="n",ann=FALSE,axes=FALSE) legend(0,.7,c("1st order outliers","2nd order outliers","3rd order outliers"),col=colout,pch=c(1,2,18),cex=cx,bty="n") plot(c(0,max(DB2)),c(0,max(DB2)),type="n",ann=FALSE) axis(2) title(ylab=expression(FD[3]^A),line=2.5) axis(1) title(xlab=expression(FD[1]),line=3) points(DB2[1,],DB2[3,],col=col,pch=pch,cex=cex,lwd=1.35*cex) for(i in 1:n) if(OI[i]) points(DB2[1,i],DB2[3,i],col=col[i],pch=pch[i],cex=cex[i],lwd=1.35*cex[i]) if (!is.null(sp.index)) points(DB2[1,sp.index],DB2[3,sp.index],pch=16,col="orange") segments(0,0,M,M,lty=3,lwd=2) plot(c(0,max(DB2)),c(0,max(DB2)),type="n",ann=FALSE,axes=FALSE,frame=TRUE) axis(1) title(xlab=expression(FD[2]),line=3) points(DB2[2,],DB2[3,],col=col,pch=pch,cex=cex,lwd=1.35*cex) for(i in 1:n) if(OI[i]) points(DB2[2,i],DB2[3,i],col=col[i],pch=pch[i],cex=cex[i],lwd=1.35*cex[i]) if (!is.null(sp.index)) points(DB2[2,sp.index],DB2[3,sp.index],pch=16,col="orange") segments(0,0,M,M,lty=3,lwd=2) par(op) } ddalpha/R/draw.ddplot.r0000644000176200001440000000643313162530566014472 0ustar liggesusersdraw.ddplot <- function(ddalpha, depth.space, cardinalities, main = "DD plot", xlab = "C1", ylab = "C2", classes = c(1,2), colors = c("red", "blue", "green"), drawsep = T){ if(!missing(ddalpha)){ col = c() points = NULL for (c in classes){ points = rbind(points, ddalpha$patterns[[c]]$depths[,classes]) col = c(col, rep(colors[c], ddalpha$patterns[[c]]$cardinality)) } if (class(xlab) != "expression" && class(ylab) != "expression" && xlab == "C1" && ylab == "C2"){ xlab = ddalpha$patterns[[1]]$name ylab = ddalpha$patterns[[2]]$name } plot(points, col = col, main = main, xlab = xlab, ylab = ylab, asp = T, xlim = c(0, max(points[,])), ylim = c(0, max(points[,]))) if(drawsep && ddalpha$methodSeparator %in% c("alpha", "polynomial")) { gx <- seq(-0.1, 1.2*max(points[,1]), length=100) gy <- seq(0, 1.2*max(points[,2]), length=100) y <- as.matrix(expand.grid(x = gx, y = gy)) if (ddalpha$methodSeparator == "alpha") { ray = ddalpha$classifiers[[1]]$hyperplane[-1] funcs = list(function(x) x[1], function(x) x[2], function(x) x[1]^2, function(x) x[1]*x[2], function(x) x[2]^2, function(x) x[1]^3, function(x) x[1]^2*x[2], function(x) x[1]*x[2]^2, function(x) x[2]^3) depthcontours = apply(y, 1, function(xx) { res = 0 for(i in 1:ddalpha$classifiers[[1]]$dimProperties)(res = res+funcs[[i]](xx)*ray[i]) res }) } else if (ddalpha$methodSeparator == "polynomial"){ if (ddalpha$classifiers[[1]]$axis == 0){ xAxis <- ddalpha$classifiers[[1]]$index1 yAxis <- ddalpha$classifiers[[1]]$index2 }else{ xAxis <- ddalpha$classifiers[[1]]$index2 yAxis <- ddalpha$classifiers[[1]]$index1 } depthcontours = apply(y, 1, function(xx) { res = 0 for(j in 1:ddalpha$classifiers[[1]]$degree){res <- res + ddalpha$classifiers[[1]]$polynomial[j]*xx[xAxis]^j} res = res-xx[yAxis] }) } contour(gx, gy, matrix(depthcontours, nrow=length(gx), ncol=length(gy)), add=TRUE, levels=0, drawlabels=FALSE, col = "black") } } else if(!missing(depth.space)){ col = c() for (c in classes){ col = c(col, rep(colors[c], cardinalities[c])) } plot(depth.space[,classes], col = col, main = main, xlab = xlab, ylab = ylab) } else stop("Both 'ddalpha' and 'depth.space' area missing") } plot.ddalpha <- function(x, type = c("ddplot", "depth.contours"), ...){ type = match.arg(type) if(type == "ddplot") draw.ddplot(x, ...) if(type == "depth.contours") depth.contours.ddalpha(x, ...) } plot.ddalphaf <- function(x, type = c("functional.data", "ddplot", "depth.contours"), ...){ type = match.arg(type) if(type == "functional.data") plot.functional(list(dataf = x$dataf, labels = lapply(x$data[,ncol(x$data)], function(o){x$labels[[o]]})), ...) if(class(x$classifier)!="ddalpha") stop(type, " is available only for the ddalpha classifier") if(type == "ddplot") draw.ddplot(x$classifier, ...) if(type == "depth.contours") depth.contours.ddalpha(x$classifier, ...) } ddalpha/R/ddalpha.train.r0000644000176200001440000004550412776660136014772 0ustar liggesusers################################################################################ # File: ddalpha.train.r # Created by: Pavlo Mozharovskyi # First published: 28.02.2013 # Last revised: 28.02.2013 # # Contains the training function of the DDalpha-classifier. # # For a description of the algorithm, see: # Lange, T., Mosler, K. and Mozharovskyi, P. (2012). Fast nonparametric # classification based on data depth. Statistical Papers. # Mozharovskyi, P., Mosler, K. and Lange, T. (2013). Classifying real-world # data with the DDalpha-procedure. Mimeo. ################################################################################ ddalpha.train <- function(formula, data, subset, depth = "halfspace", separator = "alpha", outsider.methods = "LDA", outsider.settings = NULL, aggregation.method = "majority", pretransform = NULL, mah.parMcd = 0.75, use.convex = FALSE, seed = 0, ... # # knn # knnrange = NULL, # # alpha # num.chunks = 10, # max.degree = 3, # # # halfspace depth # num.directions = 1000, # # Mahalanobis depth # mah.estimate = "moment", # mah.parMcd = 0.75, # mah.priors = NULL ){ # Raw data processing ddalpha <- .ddalpha.create.structure(formula, data, subset, ...) # Check for data consistency #1 (moved to .ddalpha.create.structure) #if (!(is.matrix(data) && is.numeric(data) # || is.data.frame(data) && prod(sapply(data[,-ncol(data)], is.numeric)))){ # stop("Argument data has unacceptable format. Classifier can not be trained!!!") #} # Check for data consistency #2 if (ddalpha$numPatterns < 2){ stop("Number of patterns is < 2. Classifier can not be trained!!!") } # TODO ddalpha$numPatterns should be restricted from above as well if (ddalpha$dimension < 2){ stop("Data dimension is < 2. Classifier can not be trained!!!") } if(separator == "Dknn"){ dknn = dknn.train(ddalpha$raw, depth = depth, seed = seed, ...) dknn$call = ddalpha$call dknn$colnames = ddalpha$colnames dknn$classif.formula = ddalpha$classif.formula return(dknn) } for (i in 1:ddalpha$numPatterns){ if (ddalpha$patterns[[i]]$cardinality < ddalpha$dimension + 1){ stop("At least in one patern number of the points < (dimension + 1). Classifier can not be trained!!!") } } if (seed != 0){ set.seed(seed) } ddalpha$seed = seed ## Validating the properties depthsThatNeedNoScaling = c("zonoid", "halfspace", "Mahalanobis", "projection", "spatial", "spatialLocal", "simplicial", "simplicialVolume", "ddplot") # note: "spatialLocal" thansforms the data inside, by itself supportedDepths = c(depthsThatNeedNoScaling, "potential") if (is.null(depth) || toupper(depth) %in% c("", "NULL", "NONE")){ ddalpha$methodDepth <- NULL warning("Argument \"depth\" specified as NULL.") } else if (!is.character(depth) || length(depth) != 1){ stop("Argument \"depth\" not specified correctly.") } else if(!(depth %in% supportedDepths)){ fname = paste0(".", depth, "_validate") f <- try(match.fun(fname), silent = T) if (!is.function(f)) warning(paste0("No validator function: ", fname)) fname = paste0(".", depth, "_learn") f <- (match.fun(fname)) if (!is.function(f)) stop(paste0("No function: ", fname)) fname = paste0(".", depth, "_depths") f <- (match.fun(fname)) if (!is.function(f)) stop(paste0("No function: ", fname)) ddalpha$methodDepth <- depth }else{ ddalpha$methodDepth <- depth } if (!is.character(separator) || length(separator) != 1){ stop("Argument \"separator\" not specified correctly.") } else if(!(separator %in% c("alpha", "polynomial", "knnlm", "maxD"))){ fname = paste0(".", separator, "_validate") f <- try(match.fun(fname), silent = T) if (!is.function(f)) warning(paste0("No validator function: ", fname, ". Cannot set 'methodSeparatorBinary'.")) fname = paste0(".", separator, "_learn") f <- (match.fun(fname)) if (!is.function(f)) stop(paste0("No function: ", fname)) fname = paste0(".", separator, "_classify") f <- (match.fun(fname)) if (!is.function(f)) stop(paste0("No function: ", fname)) ddalpha$methodSeparator <- separator }else{ ddalpha$methodSeparator <- separator } if (!is.character(aggregation.method) || length(aggregation.method) != 1 || !(aggregation.method %in% c("majority", "sequent", "none"))){ ddalpha$methodAggregation <- "majority" warning("Argument \"aggregation.method\" not specified correctly. \"majority\" is used as a default value") }else{ ddalpha$methodAggregation <- aggregation.method ddalpha$methodSeparatorBinary = (aggregation.method !="none") } ddalpha$needtransform = 0 if (!is.null(pretransform)) if (ddalpha$methodDepth %in% depthsThatNeedNoScaling){ warning("The used depth method is affine-invariant and pretransform doesn't influence the result. The data won't be transformed.") } else if (pretransform == "1Mom" || pretransform == "1MCD"){ ddalpha$needtransform = 1 if (pretransform == "1Mom") mm <- mah.moment(data[,-ncol(data)]) else # "1MCD" mm <- mah.mcd(data[,-ncol(data)], mah.parMcd) for (i in 1:ddalpha$numPatterns){ ddalpha$patterns[[i]]$transformer <- MahMomentTransformer(mm$mu, mm$b) ddalpha$patterns[[i]]$points <- ddalpha$patterns[[i]]$transformer(ddalpha$patterns[[i]]$points) } } else if (pretransform == "NMom" || pretransform == "NMCD"){ ddalpha$needtransform = 2 for (i in 1:ddalpha$numPatterns){ if (pretransform == "NMom") mm <- mah.moment(ddalpha$patterns[[i]]$points) else # "NMCD" mm <- mah.mcd(ddalpha$patterns[[i]]$points, mah.parMcd) ddalpha$patterns[[i]]$transformer <- MahMomentTransformer(mm$mu, mm$b) } } else { warning("Argument pretransform has unacceptable format. The data won't be transformed.") } # appends ddalpha with the values from the given list (lst) ddalpha.append <- function(lst){ if(is.list(lst)) for(k in names(lst)) ddalpha[[k]] <<- lst[[k]] } # calls the validation method for the selected separator || depth # NO errors or warnings if the function doesn't exist!! # ddalpha is READONLY inside the validators validate <- function(method_name){ f <- try(match.fun(paste0(".", method_name, "_validate")), silent = T) if (is.function(f)){ lst <- f(ddalpha, ...) ddalpha.append(lst) } } ## Separator parameters validation if (!is.null(ddalpha$methodDepth)) validate(ddalpha$methodSeparator) ## Depth parameters validation if (!is.logical(use.convex) || length(use.convex) != 1 || !(use.convex %in% c(TRUE, FALSE))){ ddalpha$useConvex <- FALSE warning("Argument \"use.convex\" not specified correctly. FALSE is used as a default value") }else{ ddalpha$useConvex <- use.convex } if (!is.null(ddalpha$methodDepth)) validate(ddalpha$methodDepth) ## The learning procedures if (!is.null(ddalpha$methodDepth)){ # Calculate depths if(ddalpha$methodDepth == "ddplot"){ for(i in 1:ddalpha$numPatterns) ddalpha$patterns[[i]]$depths <- ddalpha$patterns[[i]]$points } else{ ddalpha <- .ddalpha.learn.depth(ddalpha) if(is.null(ddalpha)) stop("The depth method did not return the 'ddalpha' object.") } # Learn classification machine if (ddalpha$methodSeparatorBinary){ ddalpha <- .ddalpha.learn.binary(ddalpha) } else { ddalpha <- .ddalpha.learn.multiclass(ddalpha) } if(is.null(ddalpha)) stop("The separator method did not return the 'ddalpha' object.") # if (ddalpha$methodSeparator == "alpha"){ # ddalpha <- .ddalpha.learn.alpha(ddalpha) # } else # if (ddalpha$methodSeparator == "polynomial"){ # ddalpha <- .ddalpha.learn.polynomial(ddalpha) # } else # if (ddalpha$methodSeparator == "knnlm"){ # ddalpha <- .ddalpha.learn.knnlm(ddalpha) # } else # stop("Define custom classifier") } else { ddalpha$numClassifiers = 0 } # Learn outsider treatments if needed if (is.null(ddalpha$methodDepth) || !(ddalpha$methodDepth %in% c("Mahalanobis", "projection", "spatial", "simplicialVolume", "potential"))){#, "simplicial" (may obtain too small values) ddalpha <- .ddalpha.learn.outsiders(ddalpha = ddalpha, methodsOutsider = outsider.methods, settingsOutsider = outsider.settings) } class(ddalpha) <- "ddalpha" return (ddalpha) } ################################################################################ # Validation functions ################################################################################ .alpha_validate <- function(ddalpha, num.chunks = 10, max.degree = 3, debug = F,...){ if (ddalpha$methodAggregation == "majority"){ maxChunks <- ddalpha$patterns[[ddalpha$numPatterns]]$cardinality + ddalpha$patterns[[ddalpha$numPatterns - 1]]$cardinality }else{ maxChunks <- ddalpha$numPoints } if (is.character(num.chunks) && toupper(num.chunks)=="MAX") num.chunks <- maxChunks else if (!is.numeric(num.chunks) || is.na(num.chunks) || length(num.chunks) != 1 || !.is.wholenumber(num.chunks) || !(num.chunks > 0 && num.chunks <= maxChunks)){ if (!missing(num.chunks)) warning("Argument \"num.chunks\" not specified correctly. ", maxChunks, " is used instead") num.chunks <- maxChunks } if(!is.numeric(max.degree) || is.na(max.degree) || length(max.degree) != 1 || !.is.wholenumber(max.degree) || !(max.degree %in% 1:10)){ max.degree <- 3 warning("Argument \"max.degree\" not specified correctly. 3 is used as a default value") } return (list(numChunks = num.chunks, maxDegree = max.degree, debug = (debug == T), methodSeparatorBinary = T)) } .polynomial_validate <- .alpha_validate # the same .knnlm_validate <- function(ddalpha, knnrange = 10*( (ddalpha$numPoints)^(1/ddalpha$numPatterns) ) + 1,...){ isnull = missing(knnrange) || is.null(knnrange) if (is.character(knnrange) && toupper(knnrange)=="MAX") knnrange = ceiling(ddalpha$numPoints/2) else if(is.null(knnrange) || !is.numeric(knnrange) || is.na(knnrange) || length(knnrange) != 1 || !.is.wholenumber(knnrange) || !(knnrange >=2 && knnrange <= ceiling(ddalpha$numPoints/2))){ knnrange <- 10*( (ddalpha$numPoints)^(1/ddalpha$numPatterns) ) + 1 # Default knnrange <- min(knnrange, ceiling(ddalpha$numPoints/2)) knnrange <- max(knnrange, 2) if (!isnull) warning("Argument \"knnrange\" not specified correctly. ", knnrange, " is used instead") } return (list(knnrange = knnrange, methodSeparatorBinary = F)) } .maxD_validate <- function(ddalpha,...){ return(list(methodSeparatorBinary = F)) } .ddplot_validate <- function(ddalpha, ...){ if(ddalpha$dimension!=ddalpha$numPatterns) stop("You must pass a DD-plot, with the number of columns equal to the number of classes as data.") } .halfspace_validate <- function(ddalpha, exact, method, num.directions = 1000,...){ method = .parse_HSD_pars(exact, method) if(method == 0) if(!is.numeric(num.directions) || is.na(num.directions) || length(num.directions) != 1 || !.is.wholenumber(num.directions) || !(num.directions > 1 && num.directions < 10000000) ){ num.directions <- 1000 warning("Argument \"num.directions\" not specified correctly. 1000 is used as a default value") } return (list(dmethod = method, numDirections = num.directions)) } .projection_validate <- function(ddalpha, method = "random", num.directions = 1000,...){ if (!(method %in% c("random","linearize"))) stop("Wrong method") if(method == "random") if(!is.numeric(num.directions) || is.na(num.directions) || length(num.directions) != 1 || !.is.wholenumber(num.directions) || !(num.directions > 1 && num.directions < 10000000) ){ num.directions <- 1000 warning("Argument \"num.directions\" not specified correctly. 1000 is used as a default value") } return (list(dmethod = method, numDirections = num.directions)) } .simplicial_validate <- function(ddalpha, exact = F, k = 0.05, ...){ if (exact) return(list(d_exact = exact)) if (k <= 0) stop("k must be positive") else if (k < 1) k = choose(ddalpha$numPoints, ddalpha$dimension)*k return(list(d_exact = exact, d_k = k)) } .simplicialVolume_validate <- .simplicial_validate .Mahalanobis_validate <- function(ddalpha, mah.estimate = "moment", mah.priors = NULL, mah.parMcd = 0.75, ...){ if (!is.character(mah.estimate) || length(mah.estimate) != 1 || !(mah.estimate %in% c("moment", "MCD"))){ mah.estimate <- "moment" warning("Argument \"mah.estimate\" not specified correctly. \"moment\" is used as a default value") } if (!is.vector(mah.priors, mode = "double") || is.na(min(mah.priors)) || length(mah.priors) != ddalpha$numPatterns || min(mah.priors) <= 0 || max(mah.priors) <= 0){ if (!is.null(mah.priors)){ warning("Argument \"mah.priors\" not specified correctly. Defaults in the form of class portions are applied") } mah.priors <- NULL }else{ mah.priors <- mah.priors/sum(mah.priors) } ret <- list(mahEstimate = mah.estimate, mahPriors = mah.priors) if (mah.estimate == "MCD"){ if (is.null(mah.parMcd) || !is.vector(mah.parMcd, mode = "double") || is.na(min(mah.parMcd)) || length(mah.parMcd) != 1 || mah.parMcd < 0.5 || mah.parMcd > 1){ mah.parMcd <- 0.75 warning("Argument \"mah.parMcd\" not specified correctly. 0.75 is used as a default value") } ret$mahParMcd = mah.parMcd } return (ret) } .spatial_validate <- function(ddalpha, mah.estimate = "moment", mah.parMcd = 0.75, ...){ if(mah.estimate == "none") return(list(mahEstimate = "none")) return(.Mahalanobis_validate(ddalpha, mah.estimate = mah.estimate, mah.parMcd = mah.parMcd, ...)) } .spatialLocal_validate <- function(ddalpha, kernel = "GKernel", kernel.bandwidth = 1, ...) { # validate paraameters mah.estimate, mah.parMcd spatial_val = .spatial_validate(ddalpha, ...) if (is.null(kernel) || suppressWarnings ( !((kernel %in% .potentialKernelTypes) || !is.na(as.numeric(kernel))&&(as.numeric(kernel) %in% c(1:length(.potentialKernelTypes)))) )){ stop("Argument \"Kernel\" has invaid format.") } if (is.null(kernel.bandwidth) || !is.numeric(kernel.bandwidth)){ stop("Argument \"kernel.bandwidth\" has invaid format.") } if (length(kernel.bandwidth) == 1){ if (length(kernel.bandwidth) || is.na(kernel.bandwidth) || kernel.bandwidth == 0){ stop("Argument \"kernel.bandwidth\" is Zero or NA.") } kernel.bandwidth = rep(kernel.bandwidth, ddalpha$numPatterns) } else { if (sum(!is.na(kernel.bandwidth)) != ddalpha$numPatterns || sum(kernel.bandwidth != 0) != ddalpha$numPatterns){ stop("Argument \"kernel.bandwidth\" has invaid length, Zero or NA elements.") } # order bandwidths the same as the classes names = sapply(ddalpha$patterns, FUN=function(X) X$name) kernel.bandwidth = kernel.bandwidth[order(names)] } spatial_val$kernel = kernel spatial_val$kernel.bandwidth = kernel.bandwidth return(spatial_val) } .potential_validate <- function(ddalpha, kernel = "GKernel", kernel.bandwidth = NULL, ignoreself = FALSE, ...) { # if kernel.bandwidth is a vector - the values are given in the alphabetical order of the classes nemes if (ddalpha$needtransform == 0) stop("'pretransform' must be set for depth = 'potential'") if (is.null(kernel) || suppressWarnings ( !((kernel %in% .potentialKernelTypes) || !is.na(as.numeric(kernel))&&(as.numeric(kernel) %in% c(1:length(.potentialKernelTypes)))) )){ stop("Argument \"Kernel\" has invaid format.") } if (is.null(kernel.bandwidth)) { # use the rule of thumb if (ddalpha$needtransform == 2){ kernel.bandwidth = sapply(ddalpha$patterns, FUN=function(X) nrow(X$points)) ^ (-2/(ddalpha$dimension+4)) } else { kernel.bandwidth = ddalpha$numPoints ^ (-2/(ddalpha$dimension+4)) } } else{ if (#is.null(kernel.bandwidth) || !is.numeric(kernel.bandwidth) ||!(is.vector(kernel.bandwidth) || is.list(kernel.bandwidth))){ stop("Argument \"kernel.bandwidth\" has invaid format.") } if (ddalpha$needtransform == 2){ if (length(kernel.bandwidth) == 1) kernel.bandwidth = rep(kernel.bandwidth, ddalpha$numPatterns) if (sum(!is.na(kernel.bandwidth)) != ddalpha$numPatterns || sum(kernel.bandwidth != 0) != ddalpha$numPatterns){ stop("Argument \"kernel.bandwidth\" has invaid length, Zero or NA elements.") } # order bandwidths the same as the classes names = sapply(ddalpha$patterns, FUN=function(X) X$name) kernel.bandwidth = kernel.bandwidth[order(names)] } else if (length(kernel.bandwidth) != 1 || is.na(kernel.bandwidth) || kernel.bandwidth == 0){ stop("Argument \"kernel.bandwidth\" has invaid length, Zero or NA elements.") } } if (is.null(ignoreself) || !is.logical(ignoreself)) warning ("Argument \"ignoreself\" has invaid format. FALSE used.") return(list("kernel" = kernel, "kernel.bandwidth" = kernel.bandwidth, "ignoreself" = ignoreself)) } ddalpha/R/depth.projection.r0000644000176200001440000002043712745655010015525 0ustar liggesusers################################################################################ # File: depth.projection.r # Created by: Pavlo Mozharovskyi # First published: 28.02.2013 # Last revised: 13.11.2015 # # Computation of the projection data depth. ################################################################################ # Conrains R-codes written by Subhajit Dutta, # taken from http://www.isical.ac.in/~tijahbus/GAM/r_wilcox.txt. ################################################################################ depth.projection <- function(x, data, method = "random", num.directions = 1000, seed = 0){ if (seed!=0) set.seed(seed) if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.matrix(x) && is.vector(x)){ x <- matrix(x, nrow=1) } if (method == "random"){ dt <- as.vector(t(data)) z <- as.vector(t(x)) m <- nrow(x) d <- ncol(data) n <- nrow(data) q <- 1 k <- num.directions newDirs <- 1 rez <- .C("ProjectionDepth", as.double(dt), as.double(z), as.integer(m), as.integer(d), as.integer(n), as.integer(q), dirs=double(k*d), prjs=double(k*n), as.integer(k), as.integer(1), as.integer(seed), dps=double(m*q)) return (rez$dps) } if (method == "linearize"){ depths <- .zdepth(data, x) return (1/(1 + depths)) } } depth.space.projection <- function(data, cardinalities, method = "random", num.directions = 1000, seed = 0){ if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.vector(cardinalities, mode = "numeric") || is.na(min(cardinalities)) || sum(.is.wholenumber(cardinalities)) != length(cardinalities) || min(cardinalities) <= 0 || sum(cardinalities) != nrow(data)){ stop("Argument \"cardinalities\" should be a vector of cardinalities of the classes in \"data\" ") } if (sum(cardinalities < ncol(data) + 1) != 0){ stop("Not in all classes sufficiently enough objetcs") } depth.space <- NULL for (i in 1:length(cardinalities)){ pattern <- data[(1 + sum(cardinalities[0:(i - 1)])):sum(cardinalities[1:i]),] pattern.depths <- depth.projection (data, pattern, method, num.directions, seed) depth.space <- cbind(depth.space, pattern.depths, deparse.level = 0) } return (depth.space) } ################################################################################ # R-codes of this function written by Subhajit Dutta, # taken from http://www.isical.ac.in/~tijahbus/GAM/r_wilcox.txt. ################################################################################ .zdepth<-function(m,pts=m,zloc=median,zscale=mad){ # # Compute depth of points as in Zuo, Annals, 2003 # if(!is.matrix(m))stop("argument m should be a matrix") if(!is.matrix(pts))stop("argument pts should be a matrix") if(ncol(m)!=ncol(pts))stop("Number of columns for m and pts are not equal") np<-ncol(m) val<-NA for(i in 1:nrow(pts)){ pval<-pts[i,] START<-rep(1,np)/sqrt(np) temp<-.nelderv2(m,np,FN=.zdepth.sub,START=START,zloc=zloc,zscale=zscale,pts=pval) temp<-temp/sqrt(sum(temp^2)) y<-t(t(m)*temp) y<-apply(y,1,sum) ppro<-sum(pval*temp) val[i]<-abs(ppro-zloc(y))/zscale(y) } val } ################################################################################ # R-codes of this function written by Subhajit Dutta, # taken from http://www.isical.ac.in/~tijahbus/GAM/r_wilcox.txt. ################################################################################ .zdepth.sub<-function(x,theta,zloc=median,zscale=mad,pts=NA){ theta<-theta/sqrt(sum(theta^2)) temp<-t(t(x)*theta) ppro<-sum(t(t(pts)*theta)) yhat<-apply(temp,1,sum) val<-0-abs(ppro-zloc(yhat))/zscale(yhat) val } ################################################################################ # R-codes of this function written by Subhajit Dutta, # taken from http://www.isical.ac.in/~tijahbus/GAM/r_wilcox.txt. ################################################################################ .nelderv2<-function(x,N,FN,START=c(rep(1,N)),STEP=c(rep(1,N)), XMIN=c(rep(0,N)),XSEC=c(rep(0,N)),...){ # NELDER-MEAD method for minimzing a function # # TAKEN FROM OLSSON, J QUALITY TECHNOLOGY, 1974, 6, 56. # # x= n by p matrix containing data; it is used by # function to be minimized. # N= number of parameters # # FN=the function to be minimized # FORM: FN(x,theta), theta is vector containing # values for N parameters. # # START = starting values. # STEP=initial step. # This function returns the N values for theta that minimize FN # ICOUNT<-500 REQMIN<-.0000001 NN<-N+1 P<-matrix(NA,nrow=N,ncol=NN) P[,NN]<-START PBAR<-NA RCOEFF<-1 ECOEFF<-2 CCOEFF<-.5 KCOUNT<-ICOUNT ICOUNT<-0 DABIT<-2.04067e-35 BIGNUM<-1.e38 KONVGE<-5 XN<-N DN<-N Y<-rep(0,NN) Y[NN]<-FN(x,START,...) ICOUNT<-ICOUNT+1 for(J in 1:N){ DCHK<-START[J] START[J]<-DCHK+STEP[J] for(I in 1:N){ P[I,J]<-START[I] } Y[J]<-FN(x,START,...) ICOUNT<-ICOUNT+1 START[J]<-DCHK } I1000<-T while(I1000){ YLO<-Y[1] YNEWLO<-YLO ILO<-1 IHI<-1 for(I in 2:NN){ if(Y[I] < YLO){ YLO<-Y[I] ILO<-I} if(Y[I] > YNEWLO){ YNEWLO<-Y[I] IHI<-I} } DCHK<-(YNEWLO+DABIT)/(YLO+DABIT)-1 if(abs(DCHK) < REQMIN){ I1000<-F next } KONVGE<-KONVGE-1 if(KONVGE == 0){ KONVGE<-5 for(I in 1:N){ COORD1<-P[I,1] COORD2<-COORD1 for(J in 2:NN){ if(P[I,J] < COORD1)COORD1<-P[I,J] if(P[I,J] > COORD2)COORD2<-P[I,J] } # 2010 CONTINUE DCHK<-(COORD2+DABIT)/(COORD1+DABIT)-1 if(abs(DCHK) > REQMIN)break } } if(ICOUNT >= KCOUNT){ I1000<-F next } for(I in 1:N){ Z<-0.0 Z<-sum(P[I,1:NN]) # 6 Z<-Z-P[I,IHI] PBAR[I]<-Z/DN } PSTAR<-(1.+RCOEFF)*PBAR-RCOEFF*P[,IHI] YSTAR<-FN(x,PSTAR,...) ICOUNT<-ICOUNT+1 if(YSTAR < YLO && ICOUNT >= KCOUNT){ P[,IHI]<-PSTAR Y[IHI]<-YSTAR next } IFLAG<-T if(YSTAR < YLO){ P2STAR<-ECOEFF*PSTAR+(1-ECOEFF)*PBAR Y2STAR<-FN(x,P2STAR,...) ICOUNT<-ICOUNT+1 if(Y2STAR >= YSTAR){ P[,IHI]<-PSTAR Y[IHI]<-YSTAR next #In essence, go to 19 which goes to 1000 } IFLAG<-T while(YSTAR < Y[IHI]){ P[,IHI]<-P2STAR Y[IHI]<-Y2STAR IFLAG<-F break L<-sum(Y[1:NN] > YSTAR) if(L > 1){ P[,IHI]<-PSTAR Y[IHI]<-YSTAR IFLAG<-T break } if(L > 1)break # go to 19 if(L != 0){ P[1:N,IHI]<-PSTAR[1:N] Y[IHI]<-YSTAR } I1000<-F break if(ICOUNT >= KCOUNT){ I1000<-F next } P2STAR[1:N]<-CCOEFF*P[1:N,IHI]+(1-CCOEFF)*PBAR[1:N] Y2STAR<-FN(x,P2STAR,...) ICOUNT<-ICOUNT+1 } # END WHILE } if(IFLAG){ for(J in 1:NN){ P[,J]=(P[,J]+P[,ILO])*.5 XMIN<-P[,J] Y[J]<-FN(x,XMIN,...) } ICOUNT<-ICOUNT+NN if(ICOUNT < KCOUNT)next I1000<-F next } P[1:N,IHI]<-PSTAR[1:N] Y[IHI]<-YSTAR } for(J in 1:NN){ XMIN[1:N]<-P[1:N,J] } Y[J]<-FN(x,XMIN,...) YNEWLO<-BIGNUM for(J in 1:NN){ if (Y[J] < YNEWLO){ YNEWLO<-Y[J] IBEST<-J }} Y[IBEST]<-BIGNUM YSEC<-BIGNUM for(J in 1:NN){ if(Y[J] < YSEC){ YSEC<-Y[J] ISEC<-J }} XMIN[1:N]<-P[1:N,IBEST] XSEC[1:N]<-P[1:N,ISEC] XMIN }ddalpha/R/plot.functional.r0000644000176200001440000000346013160013613015347 0ustar liggesusersplot.functional <- function(x, main = "Functional data", xlab = "args", ylab = "vals", colors = c("red", "blue", "green", "black", "orange", "pink"), ...) { if(main == "Functional data" && !is.null(x$name)) main = x$name if(xlab == "args" && !is.null(x$args)) xlab = x$args if(ylab == "vals" && !is.null(x$vals)) ylab = x$vals ylims = matrix(unlist(lapply(x$dataf, function(e) (range(e$vals)))), ncol = 2, byrow = TRUE) plot(0, type="n", xlim=range(x$dataf[[1]]$args), ylim=c(min(ylims[,1]), max(ylims[,2])), xlab=xlab, ylab=ylab, main = main, ...) grid() if (!is.null(x$labels)) labs = sort(unlist(unique(x$labels))) else labs = NULL for (i in 1:length(x$dataf)){ if (!is.null(labs)) ind = match(x$labels[[i]],labs) else ind = 1 lineColor <- colors[ind] lines(x$dataf[[i]]$args, x$dataf[[i]]$vals, col=lineColor) } } lines.functional <- function(x, colors = c("red", "blue", "green", "black", "orange", "pink"), ...) { if (!is.null(x$labels)) labs = sort(unlist(unique(x$labels))) else labs = NULL for (i in 1:length(x$dataf)){ if (!is.null(labs)) ind = match(x$labels[[i]],labs) else ind = 1 lineColor <- colors[ind] lines(x$dataf[[i]]$args, x$dataf[[i]]$vals, col=lineColor, ...) } } points.functional <- function(x, colors = c("red", "blue", "green", "black", "orange", "pink"), ...) { if (!is.null(x$labels)) labs = sort(unlist(unique(x$labels))) else labs = NULL for (i in 1:length(x$dataf)){ if (!is.null(labs)) ind = match(x$labels[[i]],labs) else ind = 1 pointColor <- colors[ind] points(x$dataf[[i]]$args, x$dataf[[i]]$vals, col=pointColor, ...) } }ddalpha/R/depth.simplicialVolume.r0000644000176200001440000000547012545164373016674 0ustar liggesusers################################################################################ # File: depth.simplicialVolume.r # Created by: Oleksii Pokotylo # First published: 15.06.2015 # Last revised: 15.06.2015 # # Computation of the simplicial volume data depth. ################################################################################ .longtoint <- function(k){ limit = 2000000000 k1 = as.integer(k/limit) k2 = k - k1*limit return(c(k1, k2)) } depth.simplicialVolume <- function(x, data, exact = F, k = 0.05, seed = 0){ if (seed!=0) set.seed(seed) if (!is.matrix(x) && is.vector(x)){ x <- matrix(x, nrow=1) } if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.numeric(x)){ stop("Argument \"x\" should be numeric") } if (ncol(x) != ncol(data)){ stop("Dimensions of the arguments \"x\" and \"data\" should coincide") } if (ncol(data) + 1 > nrow(data)){ #? stop("To few data points") } if (!exact) if (k <= 0) stop("k must be positive") else if (k < 1) k = choose(nrow(data), ncol(data))*k points <- as.vector(t(data)) objects <- as.vector(t(x)) ds <- .C("OjaDepth", as.double(points), as.double(objects), as.integer(nrow(data)), as.integer(nrow(x)), as.integer(ncol(data)), as.integer(seed), as.integer(exact), as.integer(.longtoint(k)), depths=double(nrow(x)))$depths return (ds) } depth.space.simplicialVolume <- function(data, cardinalities, exact = F, k = 0.05, seed = 0){ if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.vector(cardinalities, mode = "numeric") || is.na(min(cardinalities)) || sum(.is.wholenumber(cardinalities)) != length(cardinalities) || min(cardinalities) <= 0 || sum(cardinalities) != nrow(data)){ stop("Argument \"cardinalities\" should be a vector of cardinalities of the classes in \"data\" ") } if (sum(cardinalities < ncol(data) + 1) != 0){ stop("Not in all classes sufficiently enough objetcs") } depth.space <- NULL for (i in 1:length(cardinalities)){ pattern <- data[(1 + sum(cardinalities[0:(i - 1)])):sum(cardinalities[1:i]),] pattern.depths <- depth.simplicialVolume(data, pattern, exact, k, seed) depth.space <- cbind(depth.space, pattern.depths, deparse.level = 0) } return (depth.space) } ddalpha/R/getdata.R0000644000176200001440000000152712526722560013620 0ustar liggesusers#all_datasets = c("baby","banknoten","biomed","bloodtransfusion","breast_cancer_wisconsin","bupa","chemdiab_1vs2","chemdiab_1vs3","chemdiab_2vs3","cloud","crabB_MvsF","crabF_BvsO","crabM_BvsO","crabO_MvsF","crab_BvsO","crab_MvsF","cricket_CvsP","diabetes","ecoli_cpvsim","ecoli_cpvspp","ecoli_imvspp","gemsen_MvsF","glass","groessen_MvsF","haberman","heart","hemophilia","indian_liver_patient_1vs2","indian_liver_patient_FvsM","iris_setosavsversicolor","iris_setosavsvirginica","iris_versicolorvsvirginica","irish_ed_MvsF","kidney","pima","plasma_retinol_MvsF","segmentation","socmob_IvsNI","socmob_WvsB","tae","tennis_MvsF","tips_DvsN","tips_MvsF","uscrime_SvsN","vertebral_column","veteran_lung_cancer","vowel_MvsF","wine_1vs2","wine_1vs3","wine_2vs3") getdata <- function (name){ data(list = name, envir = environment()) return(get(name)) } ddalpha/R/depth.r0000644000176200001440000000315412776660136013360 0ustar liggesusers.depth <- function(fname, funcargs, ...){ f <- try(match.fun(fname), silent = T) if (is.function(f)){ args = list(...) fcnArgs <- names(formals(f)) fcnArgs <- unlist(fcnArgs, use.names=FALSE) keep <- intersect(names(args), fcnArgs) unused <- setdiff(names(args), fcnArgs) args <- args[keep] args <- c(args, funcargs) res <- do.call(fname, args=args) if(length(unused)>0) warning("Unused by '", fname, "' arguments: ", paste(unused, collapse = ', ')) #res <- f(x, data, ...) return(res) } else { warning("There is no depth function ", fname) } } depth. <- function(x, data, notion = c("zonoid", "halfspace", "Mahalanobis", "projection", "spatial", "spatialLocal", "simplicial", "simplicialVolume", "ddplot", "potential"), ...){ if(is.null(notion)) stop("Parameter 'notion' must be set") t <- notion try(t <- match.arg(notion), silent = T) fname = paste0("depth.", t) funcargs = list(x = x, data = data) return(.depth(fname, funcargs, ...)) } depth.space. <- function(data, cardinalities, notion = c("zonoid", "halfspace", "Mahalanobis", "projection", "spatial", "spatialLocal", "simplicial", "simplicialVolume", "ddplot", "potential"), ...){ if(is.null(notion)) stop("Parameter 'notion' must be set") t <- notion try(t <- match.arg(notion), silent = T) # try to find a depth fname = paste0("depth.space.", t) funcargs = list(cardinalities = cardinalities, data = data) return(.depth(fname, funcargs, ...)) } # d = depth(data$train, data$train, exact = T) ddalpha/R/depth.potential.r0000644000176200001440000002332112560653365015351 0ustar liggesusers.potentialKernelTypes <- c("EDKernel", "GKernel", "EKernel", "TriangleKernel", "VarGKernel") .potential_depths <- function(ddalpha, objects, class = 0){ if (ddalpha$ignoreself) stop("ignoreself not supported") # todo ignore only if objects were NULL, @ what class do the points belong to? when seperately scaled # count all potential on the untransformed data if (class == 0) { a = ddalpha$kernel.bandwidth data <- NULL cardinalities <- c() for (i in 1:ddalpha$numPatterns){ data <- rbind(data, ddalpha$patterns[[i]]$points) cardinalities <- c(cardinalities, ddalpha$patterns[[i]]$cardinality) } if (is.null(objects)) objects = data } # count potential w.r.t the given class else { a = ddalpha$kernel.bandwidth[class] data <- ddalpha$patterns[[class]]$transformer( ddalpha$patterns[[class]]$points ) cardinalities <- c(ddalpha$patterns[[class]]$cardinality) objects <- ddalpha$patterns[[class]]$transformer(objects) # if (is.null(objects)){ # for (i in (1:ddalpha$numPatterns)){ # objects <- rbind(objects, ddalpha$patterns[[i]]$points) # } # objects <- ddalpha$patterns[[class]]$transformer(objects) # } else { # ignoreself = F # } } kernelType = ddalpha$kernel if (is.character(kernelType)) kernelType = switch (kernelType, EDKernel = 1, GKernel = 2, EKernel = 3, TriangleKernel = 4, 1) points <- as.vector(t(data)) numPoints <- sum(cardinalities) dimension <- ncol(data) points2 <- as.vector(t(objects)) numPoints2 <- nrow(objects) classes <- length(cardinalities) depth <- .C("PotentialDepthsCount", as.double(points), as.integer(numPoints), as.integer(dimension), as.integer(classes), as.integer(cardinalities), as.double(points2), as.integer(numPoints2), as.integer(kernelType), as.double(a), as.integer(ddalpha$ignoreself), depth=double(numPoints2*classes))$depth d = as.matrix(depth) dim(d)<-c(numPoints2,classes) return(d) } .potential_depths_wrt <- function(ddalpha, objects_){ d <- NULL # w.r.t. each class for (cls in 1:ddalpha$numPatterns){ data <- ddalpha$patterns[[cls]]$transformer( ddalpha$patterns[[cls]]$points ) cardinalities <- c(ddalpha$patterns[[cls]]$cardinality) objects = objects_ if (is.null(objects_)) # count for all data for (i in 1:ddalpha$numPatterns){ objects <- rbind(objects, ddalpha$patterns[[i]]$points) } objects <- ddalpha$patterns[[cls]]$transformer(objects) kernelType = ddalpha$kernel if (is.character(kernelType)) kernelType = switch (kernelType, EDKernel = 1, GKernel = 2, EKernel = 3, TriangleKernel = 4, 1) points <- as.vector(t(data)) numPoints <- sum(cardinalities) dimension <- ncol(data) points2 <- as.vector(t(objects)) numPoints2 <- nrow(objects) classes <- length(cardinalities) depth <- .C("PotentialDepthsCount", as.double(points), as.integer(numPoints), as.integer(dimension), as.integer(classes), as.integer(cardinalities), as.double(points2), as.integer(numPoints2), as.integer(kernelType), as.double(ddalpha$kernel.bandwidth[cls]), as.integer(ddalpha$ignoreself), depth=double(numPoints2*classes))$depth d = cbind(d, depth) } return(d) } depth.potential <- function(x, data, pretransform = "1Mom", kernel = "GKernel", kernel.bandwidth = NULL, mah.parMcd = 0.75){ if (!is.numeric(x)){ stop("Argument \"x\" should be numeric") } if (!is.matrix(x)) { if(is.vector(x)) x <- matrix(x, nrow=1) if(is.data.frame(x)) x <- data.matrix(x) } if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if(is.data.frame(data)) data <- data.matrix(data) if (ncol(x) != ncol(data)){ stop("Dimensions of the arguments \"x\" and \"data\" should coincide") } if (ncol(data) + 1 > nrow(data)){ #? stop("To few data points") } if(!is.null(pretransform)){ if (pretransform == "1Mom" || pretransform == "NMom") mm <- mah.moment(data) else if (pretransform == "1MCD" || pretransform == "NMCD") mm <- mah.mcd(data, mah.parMcd) transformer <- MahMomentTransformer(mm$mu, mm$b) data <- transformer(data) x <- transformer(x) } kernelType = kernel if (is.character(kernelType)) kernelType = switch (kernelType, EDKernel = 1, GKernel = 2, EKernel = 3, TriangleKernel = 4, 1) if (is.null(kernel.bandwidth)) { # use the rule of thumb kernel.bandwidth = nrow(data) ^ (-2/(ncol(data)+4)) } else{ if (length(kernel.bandwidth) != 1 || is.na(kernel.bandwidth) || kernel.bandwidth == 0) stop("Argument \"kernel.bandwidth\" has invaid format.") } points <- as.vector(t(data)) numPoints <- nrow(data) dimension <- ncol(data) points2 <- as.vector(t(x)) numPoints2 <- nrow(x) cardinalities = numPoints classes <- 1 ignoreself = F depth <- .C("PotentialDepthsCount", as.double(points), as.integer(numPoints), as.integer(dimension), as.integer(classes), as.integer(cardinalities), as.double(points2), as.integer(numPoints2), as.integer(kernelType), as.double(kernel.bandwidth), as.integer(ignoreself), depth=double(numPoints2*classes))$depth return(depth) } depth.space.potential <- function(data, cardinalities, pretransform = "NMom", kernel = "GKernel", kernel.bandwidth = NULL, mah.parMcd = 0.75){ if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if(is.data.frame(data)) data <- data.matrix(data) if (!is.vector(cardinalities, mode = "numeric") || is.na(min(cardinalities)) || sum(.is.wholenumber(cardinalities)) != length(cardinalities) || min(cardinalities) <= 0 || sum(cardinalities) != nrow(data)){ stop("Argument \"cardinalities\" should be a vector of cardinalities of the classes in \"data\" ") } if (sum(cardinalities < ncol(data) + 1) != 0){ stop("Not in all classes sufficiently enough objetcs") } d <- NULL needtransform = F if (pretransform == "1Mom" || pretransform == "1MCD"){ if (pretransform == "1Mom") mm <- mah.moment(data) else # "1MCD" mm <- mah.mcd(data, mah.parMcd) transformer <- MahMomentTransformer(mm$mu, mm$b) data <- transformer(data) if (is.null(kernel.bandwidth)) { # use the rule of thumb kernel.bandwidth = nrow(data) ^ (-2/(ncol(data)+4)) } else{ if (length(kernel.bandwidth) != 1 || is.na(kernel.bandwidth) || kernel.bandwidth == 0) stop("Argument \"kernel.bandwidth\" has invaid length, Zero or NA elements.") } } else if (pretransform == "NMom" || pretransform == "NMCD"){ needtransform = T if (is.null(kernel.bandwidth)) { # use the rule of thumb #separately calculated later } else{ if (!is.numeric(kernel.bandwidth) ||!(is.vector(kernel.bandwidth) || is.list(kernel.bandwidth))){ stop("Argument \"kernel.bandwidth\" has invaid format.") } if (length(kernel.bandwidth) == 1) kernel.bandwidth = rep(kernel.bandwidth, length(cardinalities)) if (sum(!is.na(kernel.bandwidth)) != length(cardinalities) || sum(kernel.bandwidth != 0) != length(cardinalities)){ stop("Argument \"kernel.bandwidth\" has invaid length, Zero or NA elements.") } } } if(needtransform) # w.r.t. each class for (cls in 1:length(cardinalities)){ pattern <- data[(1 + sum(cardinalities[0:(cls - 1)])):sum(cardinalities[1:cls]),] if(is.null(kernel.bandwidth)) band <- NULL else band <- kernel.bandwidth[cls] depth <- depth.potential(data, pattern, pretransform, kernel, band, mah.parMcd) d <- cbind(d, depth) } else # not w.r.t. { points <- as.vector(t(data)) numPoints <- sum(cardinalities) dimension <- ncol(data) points2 <- as.vector(t(data)) numPoints2 <- nrow(data) classes <- length(cardinalities) kernelType = kernel if (is.character(kernelType)) kernelType = switch (kernelType, EDKernel = 1, GKernel = 2, EKernel = 3, TriangleKernel = 4, 1) ignoreself = F depth <- .C("PotentialDepthsCount", as.double(points), as.integer(numPoints), as.integer(dimension), as.integer(classes), as.integer(cardinalities), as.double(points2), as.integer(numPoints2), as.integer(kernelType), as.double(kernel.bandwidth), as.integer(ignoreself), depth=double(numPoints2*classes))$depth d = as.matrix(depth) dim(d)<-c(numPoints2,classes) } return(d) } ddalpha/R/separator.polynomial.r0000644000176200001440000001451712745655010016432 0ustar liggesusers .ddalpha.learn.polynomial <- function(ddalpha){ # Separating (calculating extensions and normals) counter <- 1 # Determining multi-class behaviour if (ddalpha$methodAggregation == "majority"){ for (i in 1:(ddalpha$numPatterns - 1)){ for (j in (i + 1):ddalpha$numPatterns){ # Creating a classifier polynomial <- .polynomial_learn_C(ddalpha$maxDegree, rbind(ddalpha$patterns[[i]]$depths, ddalpha$patterns[[j]]$depths), ddalpha$patterns[[i]]$cardinality, ddalpha$patterns[[j]]$cardinality, ddalpha$numChunks, ddalpha$seed) # DEBUG if (F){ print(polynomial$coefficients) print(GetEmpiricalRisk (polynomial$coefficients, rbind(ddalpha$patterns[[i]]$depths, ddalpha$patterns[[j]]$depths), ddalpha$patterns[[i]]$cardinality, ddalpha$patterns[[j]]$cardinality)) } # Adding the classifier to the list of classifiers ddalpha$classifiers[[counter]] <- list( index = counter, index1 = i, index2 = j, polynomial = polynomial$coefficients, degree = polynomial$degree, axis = polynomial$axis) counter <- counter + 1 } } ddalpha$numClassifiers <- counter - 1 } if (ddalpha$methodAggregation == "sequent"){ for (i in 1:ddalpha$numPatterns){ anotherClass <- NULL for (j in 1:ddalpha$numPatterns){ if (j != i){ anotherClass <- rbind(anotherClass, ddalpha$patterns[[j]]$depths) } } polynomial <- .polynomial_learn_C(ddalpha$maxDegree, rbind(ddalpha$patterns[[i]]$depths, anotherClass), ddalpha$patterns[[i]]$cardinality, nrow(anotherClass), ddalpha$numChunks, ddalpha$seed) # Adding the classifier to the list of classifiers ddalpha$classifiers[[i]] <- list(index = counter, index1 = i, index2 = -1, polynomial = polynomial$coefficients, degree = polynomial$degree, axis = polynomial$axis) } ddalpha$numClassifiers <- ddalpha$numPatterns } return (ddalpha) } ################################################################################ # Functions for intermediate calculations are presented below ################################################################################ .polynomial_learn_C <- function(maxDegree, data, numClass1, numClass2, numChunks, seed){ points <- as.vector(t(data)) numPoints <- numClass1 + numClass2 dimension <- ncol(data) cardinalities <- c(numClass1, numClass2) upToPower <- maxDegree minFeatures <- 2 maxExtDimension <- (factorial(dimension + maxDegree) / (factorial(dimension)*factorial(maxDegree))) - 1; res <- .C("PolynomialLearnCV", as.double(points), as.integer(numPoints), as.integer(dimension), as.integer(cardinalities), as.integer(upToPower), as.integer(numChunks), as.integer(seed), degree = integer(1), axis = integer(1), polynomial=double(upToPower)) degree <- res$degree axis <- res$axis polynomial <- res$polynomial[1:degree] return(list(coefficients = polynomial, axis = axis, degree = degree)) } GetNumsErrors <- function(polynomial, depths, numClass1, numClass2){ # Calculates the number of classification error for two classes on the # basis of given depths # # Args: # polynomial: Polynomial as a vector of coefficients starting with the # first degree (a0 = 0 always) # depths: nx2 matrix of depths, where each column contains the depths # against the corresponding class # numClass1: Number of points belonging to the first class # numClass2: Number of points belonging to the second class # Returns: # Vector containing number of errors of the points from the firts and # the second class degree <- length(polynomial) numErrors1 <- 0 if(numClass1 != 0){ for(i in 1:numClass1){ val <- depths[i,1] res <- 0 for(j in 1:degree){res <- res + polynomial[j]*val^j} if(depths[i,2] > res){ numErrors1 <- numErrors1 + 1 } } } numErrors2 <- 0 if(numClass2 != 0){ for(i in (numClass1 + 1):(numClass1 + numClass2)){ val <- depths[i,1] res <- 0 for(j in 1:degree){res <- res + polynomial[j]*val^j} if(depths[i,2] < res){ numErrors2 <- numErrors2 + 1 } } } return(c(numErrors1, numErrors2)) } GetEmpiricalRiskSmoothed <- function(polynomial, depths, numClass1, numClass2){ res = (colSums(sapply(depths[,1], '^', (1:length(polynomial)))*polynomial) - depths[,2])*c(rep(-1, numClass1), rep(1, numClass2)) risk = sum(1/(1 + exp(-100*(res)))) return (risk/(numClass1 + numClass2)) } GetEmpiricalRisk <- function(polynomial, depths, numClass1, numClass2){ # Calculates the empirical risk for two classes on the basis of given depths # # Args: # polynomial: Polynomial as a vector of coefficients starting with the # first degree (a0 = 0 always) # depths: nx2 matrix of depths, where each column contains the depths # against the corresponding class # numClass1: Number of points belonging to the first class # numClass2: Number of points belonging to the second class # Returns: # Empirical risk risk1 <- 0 degree <- length(polynomial) for(i in 1:numClass1){ val <- depths[i,1] res <- 0 for(j in 1:degree){res <- res + polynomial[j]*val^j} if(depths[i,2] > res){ risk1 <- risk1 + 1 } } risk2 <- 0 for(i in (numClass1 + 1):(numClass1 + numClass2)){ val <- depths[i,1] res <- 0 for(j in 1:degree){res <- res + polynomial[j]*val^j} if(depths[i,2] < res){ risk2 <- risk2 + 1 } } risk <- (risk1 + risk2)/(numClass1 + numClass2) return(risk) } ddalpha/R/compclassf.r0000644000176200001440000004112513162516502014371 0ustar liggesuserscompclassf.train <- function(dataf, labels, subset, to.equalize = TRUE, to.reduce = TRUE, classifier.type = c("ddalpha", "maxdepth", "knnaff", "lda", "qda"), ...){ # Trains the functional componentwise classifier # Args: # dataf: list containing lists (functions) of two vectors of equal length, # named "args" and "vals": arguments sorted in ascending order and # corresponding them values respectively # labels: output labels of the functinal observations # other arguments: TODO # Returns: # Functional componentwise clasifier # Check "dataf" if (!is.list(dataf)) stop("Argument 'dataf' must be a list") for (df in dataf) if (!(is.list(df) && length(df) == 2 && !is.null(df$args) && !is.null(df$vals) && is.vector(df$args) && is.vector(df$vals) && is.numeric(df$args) && is.numeric(df$vals) && length(df$args) == length(df$vals) && sort(df$args) == df$args)) stop("Argument 'dataf' must be a list containing lists (functions) of two vectors of equal length, named 'args' and 'vals': arguments sorted in ascending order and corresponding them values respectively") if(!missing(subset)) { dataf = dataf[subset] labels = labels[subset] } # Check "labels" if (!(length(dataf)==length(labels) && length(unique(labels)>=2))) stop("Argument 'labels' has wrong format") # Check classifier.type classifier.type = match.arg(classifier.type) # Bring to finite dimension # Pointize points <- GetPointsDHB12(dataf, labels, to.equalize, to.reduce) # CV arg.indices <- getBestSpaceDHB12(points$data, classifier.type, num.chunks=10, ...) data <- points$data[,c(arg.indices,ncol(points$data))] # Apply chosen classifier to train the data if (classifier.type == "ddalpha"){ classifier <- ddalpha.train(data, separator = "alpha", ...) } if (classifier.type == "maxdepth"){ classifier <- ddalpha.train(data, separator = "maxD", ...) } if (classifier.type == "knnaff"){ classifier <- knnaff.train(data, i = 0, ...) } if (classifier.type == "lda"){ classifier <- lda.train(data, ...) } if (classifier.type == "qda"){ classifier <- qda.train(data, ...) } # Create the eventual output structure compclassf <- structure( list(dataf = points$dataf, labels = points$labels, adc.method = "equalCover", adc.args = list(instance = "val", numFcn = ncol(points$data) - 1, numDer = 0), adc.transmat = points$transmat, the.args = arg.indices, data = points$data, classifier.type = classifier.type, classifier = classifier), .Names = c("dataf", "labels", "adc.method", "adc.args", "adc.transmat", "the.args", "data", "classifier.type", "classifier")) class(compclassf) <- "compclassf" return (compclassf) } compclassf.classify <- function(compclassf, objectsf, subset, ...){ # Classifies functions # Args: # objectsf: sample to classify, a list containing lists (functions) of # two vectors of equal length, named "args" and "vals": # arguments sorted in ascending order and corresponding them # values respectively # compclassf: functional DDalpha-classifier # Returns: # List of labels assigned to the functions from "objectsf" # Check "objectsf" if (!is.list(objectsf)) stop("Argument 'objectsf' must be a list") if (!is.null(objectsf$args)){ objectsf = list(objectsf) # there was a single element } if(!missing(subset)) { objectsf = objectsf[subset] } for (df in objectsf) if (!(is.list(df) && length(df) == 2 && !is.null(df$args) && !is.null(df$vals) && is.vector(df$args) && is.vector(df$vals) && is.numeric(df$args) && is.numeric(df$vals) && length(df$args) == length(df$vals) && sort(df$args) == df$args)) stop("Argument 'objectsf' must be a list containing lists (functions) of two vectors of equal length, named 'args' and 'vals': arguments sorted in ascending order and corresponding them values respectively") # Prepare to multivariate classification objectsf.equalized <- equalize(objectsf) if (compclassf$adc.method == "equalCover"){ if (compclassf$adc.args$instance == "val"){ input <- getValGrid(objectsf.equalized, compclassf$adc.args$numFcn, compclassf$adc.args$numDer) } if (compclassf$adc.args$instance == "avr"){ input <- getAvrGrid(objectsf.equalized, compclassf$adc.args$numFcn, compclassf$adc.args$numDer) } if (!is.null(compclassf$adc.transmat)){ input <- input%*%compclassf$adc.transmat } } input <- input[,compclassf$the.args] # Classify and assign class labels if (compclassf$classifier.type == "ddalpha" || compclassf$classifier.type == "maxdepth"){ output <- ddalpha.classify(objects = input, ddalpha = compclassf$classifier, ...) } if (compclassf$classifier.type == "knnaff"){ output <- knnaff.classify(objects = input, compclassf$classifier, ...) } if (compclassf$classifier.type == "lda"){ output <- lda.classify(objects = input, compclassf$classifier, ...) } if (compclassf$classifier.type == "qda"){ output <- qda.classify(objects = input, compclassf$classifier, ...) } classes <- list() for (i in 1:length(output)){ # if (is.numeric(output[[i]])){ classes[[i]] <- compclassf$labels[[ output[[i]] ]] # }else{ # classes[[i]] <- output[[i]] # } } return (classes) } predict.compclassf <- function(object, objectsf, subset, ...){ compclassf.classify(object, objectsf, subset, ...) } print.compclassf <- function(x, ...){ cat("compclassf:\n") cat("\t num.functions = ", length(x$dataf), ", num.patterns = ", length(unique(x$labels)), "\n", sep="") # cat("\t adc.method", x$adc.method, "\"\n", sep="") cat("\t adc:", x$adc.args$instance, "; numFcn:", x$adc.args$numFcn, "; numDer:", x$adc.args$numDer, "\"\n", sep="") cat("\t adc.transmat", x$adc.transmat, "\"\n", sep="") cat("\t classifier.type", x$classifier.type, "\"\n", sep="") cat("\t classifier:\n") print(x$classifier) } ################################################################################ # Functions below are used for intermediate computations # ################################################################################ GetPointsDHB12 <- function(dataf, labels, to.equalize=T, to.reduce=F){ # Numerize labels names <- unique(labels) output <- rep(0, length(labels)) for (i in 1:length(labels)){ for (j in 1:length(names)){ if (labels[[i]] == names[[j]]){ output[i] = j break } } } # Prepare data if (to.equalize){ num.times = length(dataf[[1]]$args) dataf.equalized <- equalize(dataf) adc.args = list(instance = "val", numFcn = num.times, numDer = 0) input <- getValGrid(dataf.equalized, adc.args$numFcn, adc.args$numDer) }else{ input <- NULL for (i in 1:length(dataf)){ input <- rbind(input, dataf[[i]]$vals) } } transmat <- NULL if (to.reduce){# Reduce dimension if needed princomps <- NULL newDim <- ncol(input) for (i in 1:length(names)){ classi <- input[output == i,1:ncol(input)] princompsi <- prcomp(x=classi, tol=sqrt(.Machine$double.eps)) newDimi <- sum(princompsi$sdev > sqrt(.Machine$double.eps)) if (newDimi < newDim){ newDim <- newDimi princomps <- princompsi } } transmat <- NULL if (newDim < ncol(input)){ transmat <- matrix(as.vector(princomps$rotation[,1:newDim]), ncol=newDim) input <- input%*%transmat } } # Combine data data <- cbind(input, output, deparse.level=0) return (list(data = data, dataf = dataf.equalized, labels = names, transmat = transmat)) } getBestSpaceDHB12 <- function(data, classifier.type = "ddalpha", num.chunks = 10, ...){ indices.num <- ncol(data) - 1 indices.avlbl <- rep(TRUE, indices.num) indices.best <- c() error.last <- nrow(data) + 1 r <- 0 while (sum(indices.avlbl) > 0){ # If this is the first iteration search through all possible pairs if (r == 0){ # Generate all combinations with smallest distance 2 combinations <- combn((1:indices.num)[indices.avlbl], 2) tmp.cmb <- rbind(combinations[-1,], rep(-1000000, ncol(combinations))) tmp.cmb <- (tmp.cmb - combinations)==T combinations <- combinations[,apply(tmp.cmb, 2, sum)==0] # Choose the best combination errors <- c() for (i in 1:ncol(combinations)){ cat("r = ", r, ": ", i, "/", ncol(combinations), ".\n", sep="") errors <- c(errors, 0) # Actually CV num.points <- nrow(data) indices.off <- num.chunks*(0:(ceiling(num.points/num.chunks) - 1)) for (j in 1:num.chunks){ # Determine points to be taken off take.off <- (indices.off + j)[(indices.off + j) <= num.points] # Apply chosen classifier if (classifier.type == "ddalpha"){ classifier <- ddalpha.train(data[-take.off,c(combinations[,i], indices.num + 1)], separator = "alpha", ...) results <- ddalpha.classify(objects = data[take.off,combinations[,i]], ddalpha = classifier) } if (classifier.type == "maxdepth"){ classifier <- ddalpha.train(data[-take.off,c(combinations[,i], indices.num + 1)], separator = "maxD", ...) results <- ddalpha.classify(objects = data[take.off,combinations[,i]], ddalpha = classifier) } if (classifier.type == "knnaff"){ classifier <- knnaff.train(data[-take.off,c(combinations[,i], indices.num + 1)], i = i, ...) results <- knnaff.classify(data[take.off,combinations[,i]], classifier) } if (classifier.type == "lda"){ classifier <- lda.train(data[-take.off,c(combinations[,i], indices.num + 1)], ...) results <- lda.classify(data[take.off,combinations[,i]], classifier) } if (classifier.type == "qda"){ classifier <- qda.train(data[-take.off,c(combinations[,i], indices.num + 1)], ...) results <- qda.classify(data[take.off,combinations[,i]], classifier) } # Collect errors errors[i] <- errors[i] + sum(unlist(results) != data[take.off,indices.num + 1]) } } # Collect results error.last <- min(errors) indices.best <- combinations[,which.min(errors)] indices.avlbl <- rep(TRUE, indices.num) indices.to.dsbl <- unique(c(indices.best, indices.best - 1, indices.best + 1)) indices.to.dsbl <- indices.to.dsbl[indices.to.dsbl >= 1 && indices.to.dsbl <= indices.num] indices.avlbl[indices.to.dsbl] <- FALSE r <- 2 next } # First, sequential approach errors <- c() variants <- c() for (i in 1:indices.num){ if (indices.avlbl[i]){ errors <- c(errors, 0) variants <- c(variants, i) indices.cur <- c(indices.best, i) # Actually CV num.points <- nrow(data) indices.off <- num.chunks*(0:(ceiling(num.points/num.chunks) - 1)) for (j in 1:num.chunks){ # Determine points to be taken off take.off <- (indices.off + j)[(indices.off + j) <= num.points] # Apply chosen classifier if (classifier.type == "ddalpha"){ classifier <- ddalpha.train(data[-take.off,c(indices.cur, indices.num + 1)], separator = "alpha", ...) results <- ddalpha.classify(objects = data[take.off,indices.cur], ddalpha = classifier) } if (classifier.type == "maxdepth"){ classifier <- ddalpha.train(data[-take.off,c(indices.cur, indices.num + 1)], separator = "maxD", ...) results <- ddalpha.classify(objects = data[take.off,indices.cur], ddalpha = classifier) } if (classifier.type == "knnaff"){ classifier <- knnaff.train(data[-take.off,c(indices.cur, indices.num + 1)], i = i, ...) results <- knnaff.classify(data[take.off,indices.cur], classifier) } if (classifier.type == "lda"){ classifier <- lda.train(data[-take.off,c(combinations[,i], indices.num + 1)], ...) results <- lda.classify(data[take.off,combinations[,i]], classifier) } if (classifier.type == "qda"){ classifier <- qda.train(data[-take.off,c(combinations[,i], indices.num + 1)], ...) results <- qda.classify(data[take.off,combinations[,i]], classifier) } # Collect errors errors[i] <- errors[i] + sum(unlist(results) != data[take.off,indices.num + 1]) } } } error.best <- min(errors) best.i <- variants[which.min(errors)[1]] indices.new <- c(indices.best, best.i) # Refinements for r=2, 3 and 4 if (r %in% 2:3){ # Define the grid if (r == 2){step <- 10} if (r == 3){step <- 5} grid.one <- c(-(1:step*2), 0, 1:step*2) grid <- c() for (i in 1:length(indices.new)){ grid <- c(grid, indices.new[i] + grid.one) } grid <- unique(grid) grid <- sort(grid[(grid >= 1) & (grid <= indices.num)]) # Generate all combinations with smallest distance 2 combinations <- combn(grid, r + 1) tmp.cmb <- rbind(combinations[-1,], rep(-1000000, ncol(combinations))) tmp.cmb <- (tmp.cmb - combinations)==T combinations <- combinations[,apply(tmp.cmb, 2, sum)==0] # Choose the best combination #indices.grid <- (1:indices.num)[indices.avlbl & ((1:induces.num) %in% grid)] # Go through the combinations errors <- c() #combinations <- combn(indices.grid, r + 1) for (i in 1:ncol(combinations)){ cat("r = ", r, ": ", i, "/", ncol(combinations), ".\n", sep="") errors <- c(errors, 0) # Actually CV num.points <- nrow(data) indices.off <- num.chunks*(0:(ceiling(num.points/num.chunks) - 1)) for (j in 1:num.chunks){ # Determine points to be taken off take.off <- (indices.off + j)[(indices.off + j) <= num.points] # Apply chosen classifier if (classifier.type == "ddalpha"){ classifier <- ddalpha.train(data[-take.off,c(combinations[,i], indices.num + 1)], separator = "alpha", ...) results <- ddalpha.classify(objects = data[take.off,combinations[,i]], ddalpha = classifier) } if (classifier.type == "maxdepth"){ classifier <- ddalpha.train(data[-take.off,c(combinations[,i], indices.num + 1)], separator = "maxD", ...) results <- ddalpha.classify(objects = data[take.off,combinations[,i]], ddalpha = classifier) } if (classifier.type == "knnaff"){ classifier <- knnaff.train(data[-take.off,c(combinations[,i], indices.num + 1)], i = i, ...) results <- knnaff.classify(data[take.off,combinations[,i]], classifier) } if (classifier.type == "lda"){ classifier <- lda.train(data[-take.off,c(combinations[,i], indices.num + 1)], ...) results <- lda.classify(data[take.off,combinations[,i]], classifier) } if (classifier.type == "qda"){ classifier <- qda.train(data[-take.off,c(combinations[,i], indices.num + 1)], ...) results <- qda.classify(data[take.off,combinations[,i]], classifier) } # Collect errors errors[i] <- errors[i] + sum(unlist(results) != data[take.off,indices.num + 1]) } } error.best <- min(errors) indices.cur <- combinations[,which.min(errors)] }else{ indices.cur <- indices.new } if (error.best < error.last){ indices.best <- indices.cur error.last <- error.best indices.avlbl <- rep(TRUE, indices.num) indices.to.dsbl <- unique(c(indices.best, indices.best - 1, indices.best + 1)) indices.to.dsbl <- indices.to.dsbl[indices.to.dsbl >= 1 && indices.to.dsbl <= indices.num] indices.avlbl[indices.to.dsbl] <- FALSE r <- r + 1 }else{ break } } return (indices.best) } ddalpha/R/dataf.geneexp.r0000644000176200001440000020563412776660136014774 0ustar liggesusersdataf.geneexp <- function() return(structure(list( name = "Gene expression profile", args = "Time", vals = "Gene Expression Level", dataf = list(structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-0.79346, -0.72282, -1.1507, -1.2593, -1.1293, -1.7204, -1.8905, -1.8289, -1.2071, -1.13, -1.4441, -1.406, -1.1594, -1.1599, -1.2878, -0.85163, -0.92525, -0.78914, -1.3369, -1.5664, -1.2087, -1.6093, -1.7531, -1.758, -1.6204, -1.8012, -1.9443, -2.1064, -2.1235, -2.0531, -1.8445, -2.1241, -1.9314, -1.9622, -1.713, -1.7509, -1.6296, -1.3865, -1.7515, -1.3763, -0.94793, -1.2154, -1.3163, -1.4855, -1.7739, -1.1058, -1.9344, -1.5353, -1.0951, -1.7092, -1.4659, -1.2541, -1.5393, -1.5075, -1.3383, -1.5323, -0.76116, -0.020631)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.9237, -2.3027, -2.5953, -2.6431, -2.9831, -1.9908, -1.6091, -1.9276, -1.7989, -1.979, -1.7403, -1.7994, -2.4304, -1.7085, -3.0015, -2.2597, -2.5687, -2.9699, -2.6344, -2.4365, -2.1965, -2.7078, -2.4194, -2.2789, -2.5334, -2.868, -2.7163, -2.2781, -2.2212, -1.7868, -1.3285, -2.3139, -2.1579, -1.3323, -1.1929, -1.3453, -0.81118, -0.61914, -0.5528, -1.433, -3.2909, -2.4675, -2.3171, -2.3398, -1.9107, -2.4868, -1.9697, -1.9728, -2.222, -1.2862, -2.2955, -1.826, -1.412, -1.9418, -0.91909, 1.2252, 1.7191, 2.5376)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.012875, 0.54291, 0.39255, 1.0531, 1.8504, 2.6788, 3.258, 3.2666, 2.8947, 2.5465, 2.5699, 1.7148, 1.4883, 1.1486, 0.95165, 0.60407, 1.0956, -0.39961, -1.4592, -0.97673, -1.0708, -1.4571, -1.5132, -1.5329, -2.1501, -1.9411, -2.0356, -2.1392, -2.2907, -2.1826, -2.1945, -1.9167, -2.3744, -2.1768, -2.6607, -2.0388, -1.8542, -2.0915, -1.7683, -1.3575, -1.8819, -2.0613, -1.8365, -1.8292, -1.9567, -1.6103, -1.8209, -1.11, -1.4996, -0.98583, -1.4011, -1.4696, -1.2322, -1.1479, -2.2176, -2.191, -2.4955, -2.8947)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.6648, 0.71952, 0.69399, 1.0951, 1.351, 2.0205, 2.0547, 2.1753, 2.3976, 2.1094, 2.0807, 1.742, 1.625, 1.4568, 1.0819, 1.6432, 1.1584, 1.2409, 0.3143, 0.58087, 0.58163, 0.39639, 0.094816, -0.1501, -0.29, -0.20552, -0.78168, -0.65061, -0.36965, -0.6619, -1.1946, -1.1276, -1.1635, -1.3549, -1.1001, -1.2154, -1.3714, -1.6283, -1.4729, -0.67314, -0.33132, -0.39986, -0.33167, -0.83143, -0.89797, -0.75742, -0.55735, -0.41359, -0.38334, -0.82859, -0.25305, -0.88527, -0.7697, -0.49219, -1.5014, -1.7083, -1.9584, -1.5321)), .Names = c("args", "vals" )), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.7925, -1.9611, -1.976, -1.9186, -1.9686, -2.2917, -1.9044, -1.6386, -2.0419, -1.6748, -2.1899, -1.1541, -2.0625, -2.2392, -1.9201, -1.7523, -1.8647, -2.2165, -1.8356, -1.7325, -1.5851, -1.6729, -1.3059, -1.3808, -1.2628, -1.7965, -1.7009, -1.5518, -1.6073, -1.2234, -0.91518, -0.76311, -1.1418, -1.381, -0.91266, -1.1619, -1.2233, -1.1135, -0.85427, -1.2815, -1.3147, -1.0157, -1.4202, -1.2221, -1.1709, -2.1365, -2.0055, -1.93, -1.8437, -1.5225, -1.9601, -0.4449, -0.94623, -0.65994, 0.57873, 1.2035, 1.6094, 1.5759)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(1.0482, 1.3086, 1.6183, 1.6691, 2.0618, 2.4132, 2.3888, 2.3113, 2.5517, 2.5471, 2.629, 2.0421, 1.8806, 1.4594, 1.5782, 1.4648, 1.3702, 0.93122, 0.26492, 0.58102, 0.1621, -0.089822, -0.34356, -0.55483, -0.82152, -0.94071, -1.5533, -1.5751, -1.3185, -1.733, -1.57, -1.4701, -1.1053, -1.4502, -0.59434, -0.7028, -0.52149, -1.155, -1.1425, -0.70915, -1.1731, -0.7073, -0.85389, -1.2348, -1.0732, -0.64193, -0.94265, -0.32552, -0.48599, -0.49183, -1.0672, -0.92053, -1.1667, -1.3988, -1.5481, -1.9106, -2.0763, -2.2972 )), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.79292, 0.9523, 1.3392, 1.4554, 1.8893, 2.2347, 2.2338, 2.1101, 2.1066, 1.9989, 2.0791, 1.5794, 1.3979, 1.0516, 1.2115, 0.97424, 1.0062, 0.20274, -0.20633, -0.20398, -0.46979, -0.93601, -0.74061, -0.67741, -0.95927, -1.047, -1.372, -1.6804, -1.5373, -1.6602, -1.1499, -1.5344, -1.7358, -1.2336, -0.93484, -1.103, -1.0708, -1.1203, -0.61519, -1.3955, -0.49976, -0.7862, -0.57059, -0.90059, -0.56299, -1.1129, -0.64078, -0.48783, -0.62334, -0.26929, -0.50791, -0.73632, -0.50362, -1.0207, -1.7806, -1.4889, -1.7085, -1.6877)), .Names = c("args", "vals" )), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.84809, 1.376, 2.1127, 1.9301, 2.6181, 2.6503, 2.2885, 1.8839, 0.92443, 0.92023, 1.1347, 1.1064, 0.96041, 1.2286, 0.88536, 0.92572, 0.80553, -0.076896, -0.31587, -0.25326, -0.46411, -0.65685, -0.92195, -0.64383, -1.0379, -1.216, -1.3579, -1.2745, -1.3508, -1.4414, -1.031, -1.5037, -1.7109, -1.1026, -1.2745, -1.3144, -1.7634, -1.5522, -1.004, -1.1416, -0.89195, -1.0741, -1.1459, -0.89495, -1.1294, -0.67528, -0.72801, -0.53878, -0.1955, -0.3293, -0.55041, -0.9832, -0.55637, -0.81295, -1.7716, -1.5527, -1.8052, -2.1866)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.4971, -2.5373, -2.4136, -2.2974, -2.2307, -2.1471, -1.8089, -1.7506, -1.6594, -1.5625, -1.5174, -1.7709, -1.6885, -2.0027, -2.1217, -1.7514, -1.8223, -1.7503, -1.1565, -1.4987, -1.4364, -1.5246, -1.1547, -0.85294, -0.97046, -0.4414, -0.27693, -0.29009, -0.58615, -0.53882, -0.65488, -0.35291, -0.64562, -0.70815, -0.68461, -1.0094, -1.0507, -1.071, -0.84101, -1.0441, -0.85233, -1.2883, -1.3098, -1.3918, -0.62437, -1.2385, -1.7198, -0.84072, -1.1826, -0.90406, -0.99757, -0.92359, -0.88185, -0.76023, -0.36434, -0.029165, 0.66863, 0.66612)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.935, -2.8941, -2.595, -2.9575, -2.7484, -2.6137, -2.4772, -2.2623, -2.5435, -2.301, -2.513, -1.4675, -2.4154, -2.374, -1.6868, -2.2708, -2.1148, -2.0927, -2.3797, -2.2327, -1.9034, -2.0437, -1.9306, -1.309, -1.7931, -1.8825, -1.3705, -1.288, -1.8199, -1.627, -2.1355, -2.1393, -2.6322, -1.9628, -2.3385, -2.0218, -2.2874, -2.0252, -1.8153, -2.3615, -3.1811, -2.5212, -2.5742, -2.3961, -2.9316, -2.8931, -2.3292, -2.4506, -2.6527, -2.3129, -2.6529, -2.3822, -2.1897, -2.8689, -2.0812, 0.32188, 1.3789, 1.8227)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.2204, -2.1197, -2.0283, -1.7947, -1.1938, -1.2809, -1.6594, -1.86, -1.9558, -2.0185, -2.2633, -2.0099, -2.1414, -2.0686, -1.6393, -1.4278, -1.5052, -1.2922, -1.1492, -1.1816, -1.3116, -1.4018, -1.133, -1.1776, -0.92822, -0.83618, -0.33538, -0.55901, -0.47966, -0.53473, -1.1856, -1.8321, -1.8238, -1.3965, -1.2294, -1.5218, -0.51136, -1.1256, -0.99192, -1.402, -0.62486, -0.38479, -0.7805, -0.80139, -0.66597, -0.3756, -1.0019, -0.47293, -0.67972, -0.47457, -0.65573, -0.26031, -0.3687, -0.56012, 0.75234, 0.54986, 1.0801, 1.0315)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 ), vals = c(-2.2727, -2.6149, -2.0871, -2.1624, -1.8717, -1.8731, -1.6399, -1.5838, -1.2569, -1.2291, -1.105, -1.3092, -1.1471, -1.4367, -2.0917, -1.1912, -1.2659, -2.0436, -1.7859, -1.7299, -1.8774, -2.3822, -2.2119, -1.8291, -2.0212, -1.6686, -1.7595, -1.7209, -1.7115, -1.5953, -1.7217, -1.4696, -1.4471, -1.0806, -1.5074, -1.2352, -1.3727, -1.1228, -1.2331, -1.1951, -0.29478, -1.3315, -1.5556, -1.0823, -0.87551, -1.3008, -0.19811, -0.45936, -0.27704, -0.34483, -1.0286, 0.4811, 0.72541, 1.9851, 2.2727, 2.4818, 2.0396)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.7475, -2.5094, -2.427, -2.0922, -2.0596, -1.7612, -1.7399, -1.7083, -1.3598, -1.2163, -1.4821, -1.9341, -1.6585, -1.788, -1.7361, -1.4663, -1.5466, -1.3588, -1.4329, -1.4414, -1.5503, -1.8134, -1.6691, -1.7187, -1.9935, -1.792, -1.4476, -1.4945, -1.9585, -1.5737, -1.5261, -1.5481, -1.5125, -1.6459, -2.3148, -1.6525, -2.5251, -2.5696, -2.1973, -1.3856, -1.7097, -1.4321, -1.2026, -1.5029, -1.0703, -1.4015, -1.3826, -1.3404, -1.4686, -1.4942, -1.2091, -0.93255, -1.3839, -1.5552, -1.3285, -0.068597, 0.63569, 0.78854)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-0.72444, -0.76817, -1.004, -0.8603, -0.78179, -0.41719, -0.53807, -0.53256, -0.67077, -1.1659, -1.1104, -1.1296, -1.2649, -1.1946, -1.1507, -0.75183, -0.72139, -0.47571, -0.48232, -0.36371, -0.16425, 0.15927, 0.32528, -0.044916, 0.63644, 0.35244, 0.34664, 0.63471, 0.31018, 0.41415, 0.13964, 0.11521, 0.50556, -0.17909, 0.54732, -0.34159, 0.54648, 0.25057, -0.56087, -1.5746, -0.37623, -1.3944, -1.4232, -1.7043, -1.586, -1.2329, -2.2449, -1.5766, -1.3626, -1.9903, -1.7058, -1.0173, -1.3015, -0.76902, 0.3175, 0.74246, 0.87454, 1.1087)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.9098, -2.2504, -2.3542, -1.7173, -1.7936, -1.925, -1.935, -1.8081, -2.1531, -1.4244, -1.848, -1.1934, -1.1576, -2.0252, -2.3111, -1.9399, -1.9278, -2.3593, -2.3845, -2.3021, -1.9214, -2.2228, -1.9805, -2.235, -2.041, -2.2422, -1.6459, -1.9747, -2.1425, -2.3564, -1.0808, -1.5839, -1.0907, -1.8253, -1.0533, -1.059, -1.3892, -0.93776, -0.8534, -1.434, -1.2886, -1.2159, -1.3142, -0.68278, -0.047018, -0.47469, -1.3302, 1.0768, 0.59085, -0.84664, -1.1913, -1.0452, -1.5946, -1.5418, -1.2384, -1.0844, -0.98738, -1.1304)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-3.778, -3.7013, -3.4236, -3.8591, -4.2063, -4.177, -4.1718, -4.2285, -4.428, -4.0572, -4.1206, -3.5574, -4.2401, -4.12, -3.6542, -3.2404, -3.3338, -3.7621, -3.5018, -3.1215, -2.4137, -2.9459, -2.9292, -2.2957, -2.3441, -3.0366, -2.4036, -2.335, -2.5374, -1.9795, -2.1784, -2.461, -2.5887, -2.3384, -2.1609, -2.1472, -1.7959, -1.1212, -1.6657, -3.1536, -2.9683, -4.4004, -4.2828, -4.8756, -4.5265, -4.3486, -3.9635, -4.9043, -4.0765, -3.6007, -4.404, -3.9554, -3.1806, -3.6648, -3.014, 1.7581, 2.3147, 3.1392)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.2106, -2.3216, -2.6404, -2.0838, -2.368, -2.4199, -1.9293, -2.1786, -2.0776, -1.9324, -2.4206, -2.0579, -2.4495, -2.2969, -2.9193, -1.3253, -2.2407, -1.8839, -1.8358, -2.2464, -1.952, -2.048, -1.7441, -1.308, -1.9929, -2.0884, -1.9483, -1.7738, -1.7972, -1.2237, -1.4877, -1.2919, -1.5378, -0.95394, -1.4501, -0.81707, -1.2893, -0.96707, -0.20339, -1.6816, -0.51592, -2.4516, -2.0551, -1.5648, -1.4546, -1.7113, -1.1216, -1.9126, -1.5625, -1.7861, -2.0267, -1.2595, -1.7043, -1.2201, -1.2529, 0.5353, 0.87361, 0.60546)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-0.38784, -0.71272, -0.58395, -0.58439, -0.45742, -1.0198, -1.4433, -1.5137, -1.4051, -1.0695, -1.1391, -1.6012, -0.86499, -1.2874, -1.066, -0.60874, -0.59527, -0.12706, -0.55067, -0.46257, -0.31258, -0.52803, -0.54244, -0.67885, -0.76104, -1.0072, -1.6537, -1.8046, -1.3995, -1.5469, -2.078, -1.8745, -1.673, -2.0578, -1.5238, -1.5538, -1.2933, -1.7632, -1.6508, -1.5172, -0.64418, -1.155, -0.99452, -1.0034, -1.0511, -1.0011, -0.97482, -1.0189, -0.8697, -0.66891, -1.0655, -0.10921, -0.42596, -0.52896, 0.17541, -0.50596, -0.48372, -0.62951)), .Names = c("args", "vals" )), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-0.54359, -0.65546, -0.74479, -0.61564, -0.86965, -1.2706, -1.2448, -1.1392, -1.3068, -0.9382, -1.4724, -0.84077, -1.2435, -1.1408, -1.284, -1.0574, -1.2419, -1.1373, -1.0329, -0.99262, -0.70482, -0.82487, -0.55322, -0.52084, -1.2845, -1.0749, -1.0902, -1.1671, -0.75964, -0.87079, -0.52594, -0.017274, -1.9159, -0.18597, -0.61599, -0.70537, -0.60526, -0.66251, -0.32633, -1.3035, -0.92662, -1.6479, -1.2818, -0.7126, -0.92059, -1.8693, -1.3506, -1.0264, -0.99432, -0.59921, -1.2595, -0.24357, -0.43002, 0.083507, -0.033828, 0.46972, 0.21572, 0.97072)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.97492, 1.0717, 1.2324, 1.2593, 1.685, 2.0139, 2.2429, 2.2013, 2.2248, 2.0139, 2.4604, 1.5907, 1.3883, 1.1179, 1.0831, 0.96327, 1.0842, 0.4454, -0.024521, 0.38816, 0.15865, -0.21118, -0.48191, -0.46717, -0.47723, -0.40083, -0.55778, -0.74242, -0.37738, -0.63417, -0.48312, -0.65404, -0.79972, -0.57369, -1.3658, -1.0051, -1.5472, -1.461, -1.4412, -0.87002, -1.143, -0.9128, -0.66796, -0.83015, -1.0066, -0.93714, -1.127, -0.72119, -0.76209, -0.69445, -0.62477, -0.68916, -0.63353, -1.2612, -1.6555, -1.7668, -1.9891, -1.6532)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.8578, -1.8985, -2.1196, -1.7855, -2.0354, -1.9596, -1.0689, -1.4064, -1.4869, -1.5505, -1.8055, -1.7008, -2.0745, -1.83, -1.9553, -1.6857, -1.9451, -2.0127, -1.868, -1.5625, -1.9624, -1.9119, -1.9749, -1.6513, -1.6689, -1.7814, -1.8707, -1.6933, -1.5086, -1.5261, -0.16813, -0.73535, -0.9151, -0.40462, -0.48592, -0.39817, -1.0161, -0.24353, 0.10998, -0.78803, -0.52916, -1.0944, -0.90698, -0.36188, -0.64918, -1.019, -1.2155, -0.96465, -0.85491, -0.78928, -0.81293, -0.64781, -0.78736, -0.48355, 0.39936, 2.5213, 1.2019, -0.070349)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.86305, 0.73865, 1.0447, 1.2953, 2.0084, 2.0611, 2.4025, 2.2306, 2.5086, 2.5674, 2.5404, 2.4038, 2.5399, 2.3899, 2.7886, 2.5011, 3.0747, 1.3217, 0.092391, 0.19143, 0.16806, -0.58406, -0.57016, -0.56912, -1.2479, -0.89981, -1.0149, -1.0868, -0.71627, -0.88356, -0.76246, -1.1053, -1.6964, -1.0147, -1.4891, -0.85, -0.49243, -0.65674, -0.26814, -0.26076, -0.26291, -1.0745, -1.047, -0.69626, -0.4487, -0.44785, -0.084818, 0.48961, 0.48843, 0.8026, 1.0675, -1.6418, -0.35512, -0.57959, -1.7847, -1.4698, -1.5665, -2.2529)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.35404, 0.20618, 0.45756, 0.8705, 1.0183, 1.4905, 1.5019, 1.6652, 1.6308, 1.5357, 1.6721, 1.1555, 0.95899, 1.4377, 1.0575, 1.1023, 1.0022, 0.64513, 0.32201, 0.16842, 0.034455, -0.090135, -0.4606, -0.6877, -0.71392, -0.65058, -0.66523, -0.54618, -0.82859, -0.86747, -1.1282, -1.7028, -0.99836, -1.2961, -0.56379, -0.99903, -0.92851, -1.3723, -1.4075, -1.2459, -0.344, -0.98982, -1.0033, -1.2384, -1.1863, -1.175, -1.6308, -1.5412, -1.0187, -1.07, -1.2885, -0.80448, -1.2782, -1.06, -0.99544, -1.1429, -1.0468, -1.5905)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, 58), vals = c(-1.8451, -2.0949, -2.2672, -2.3024, -1.708, -1.6447, -1.8971, -2.0226, -2.0946, -1.5226, -1.8791, -1.7306, -1.4611, -1.8045, -1.4203, -1.6994, -1.5835, -1.5248, -1.8595, -1.7914, -1.5399, -1.6443, -1.2062, -1.2156, -1.1959, -1.0254, -1.0114, -1.1722, -1.3578, -0.97305, -0.67548, -0.47264, -0.29619, -0.4131, -0.74616, -0.8259, -1.3027, -1.2955, -1.5403, -1.5539, -1.6726, -1.9712, -1.2532, -2.3553, -1.6145, -1.8022, -1.9177, -2.2349, -1.8872, -2.1151, -1.6481, -1.0895, -0.11998, 0.82429)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(1.0031, 0.89532, 0.18505, 2.6189, 4.174, 4.8863, 3.6903, 2.5679, -0.5557, -1.3196, -0.91746, -1.4929, -3.0427, -2.378, -1.7144, -1.8245, -2.2278, -3.3753, -3.026, -1.982, -2.4781, -2.6698, -3.1143, -2.7738, -2.6823, -3.3244, -3.3223, -3.4011, -3.223, -2.8073, -2.6632, -2.5265, -3.0611, -2.5951, -2.7975, -2.1079, -2.3848, -1.8038, -1.6098, -2.2318, -0.7009, -2.8811, -2.5688, -3.0257, -2.6368, -2.5873, -2.6786, -3.1108, -2.387, -2.0863, -3.1362, -2.7512, -2.326, -2.3103, -2.4037, -2.8056, -2.865, -3.0461)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.7452, -1.621, -1.85, -1.8237, -1.9213, -1.7725, -2.039, -2.2283, -2.1167, -2.0428, -2.4272, -1.881, -2.1481, -2.0699, -1.8183, -2.1091, -2.4895, -2.4064, -1.8772, -2.0244, -2.001, -2.0067, -2.7635, -2.2521, -2.5578, -2.676, -2.5018, -2.4063, -2.9202, -2.4185, -1.2527, -1.4148, -1.9804, -1.5345, -1.6964, -1.4762, -1.3606, -0.64196, -1.4378, -2.0101, -2.5716, -2.6758, -2.0284, -2.2688, -2.2123, -2.8862, -2.6285, -2.6445, -1.966, -1.872, -2.6848, -2.0878, -2.0086, -1.9586, -2.3817, -1.919, -2.0213, -0.23672)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(1.0269, 1.1906, 1.7092, 1.6832, 2.0055, 2.3466, 2.3787, 2.4351, 2.2659, 2.2475, 2.3215, 1.7972, 1.7221, 1.6965, 1.1247, 0.89712, 1.3231, 0.63019, -0.3615, 0.20156, 0.013578, -0.25303, -0.55243, -0.48872, -0.50075, -0.42621, -1.2565, -1.2993, -1.0358, -1.3995, -1.5251, -1.7372, -1.2306, -1.5274, -1.0723, -1.6023, -1.9799, -1.8196, -1.1328, -1.3123, -1.8708, -0.78702, -0.97184, -1.1106, -1.5558, -1.0278, -1.543, -1.0516, -0.41008, -0.95468, -1.1978, -0.75432, -1.1044, -1.2133, -1.4844, -1.4492, -1.9265, -1.7604)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-3.2018, -3.3843, -2.2362, -2.4237, -3.694, -2.9812, -2.5195, -2.6642, -2.8177, -2.6846, -2.8251, -2.1831, -2.7414, -2.1354, -2.9456, -2.0017, -2.4889, -3.1887, -2.793, -1.9506, -2.4753, -3.1781, -3.3725, -3.0194, -2.5735, -3.4571, -3.0161, -3.0851, -2.1181, -3.3768, -1.28, -2.3247, -1.9758, -1.839, -2.0688, -1.7895, -1.6746, -1.0105, -1.6089, -1.9377, -2.4127, -3.63, -3.2126, -3.2969, -2.5532, -3.8899, -2.3105, -2.9655, -2.5128, -2.7894, -3.0372, -3.0159, -1.6996, -1.5095, -2.5096, -2.8045, -2.1336, -2.4208)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.19607, 0.48623, 0.32146, 0.43916, 0.59019, 1.5428, 1.8111, 1.4385, 1.8449, 1.5088, 1.8077, 1.4713, 1.5026, 1.7863, 1.3992, 0.61646, 1.3488, 0.47486, 0.025249, -0.15009, -0.35413, -0.3152, -0.81424, -0.77863, -0.70491, -1.1233, -1.2515, -1.2304, -1.047, -1.0364, -0.98892, -1.6361, -1.9184, -1.0295, -1.4788, -1.3412, -1.4026, -1.582, -1.1393, -1.539, 0.62259, -1.1183, -1.3686, -1.2846, -1.2138, -0.79284, -1.458, -0.5518, -0.68496, -0.92185, -0.80494, -0.79504, -0.5305, -0.91446, -1.055, -1.5522, -1.8499, -1.8077 )), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-0.83347, -0.60602, -0.50768, -0.12228, -0.089261, 0.13937, -0.28999, -0.63059, -0.80241, -1.0125, -1.1906, -0.70604, -0.76433, -0.47512, -0.46089, -0.89103, -0.95839, -0.85265, -0.53415, -0.73143, -0.53766, -0.55648, -0.84211, -0.76137, -0.74501, -0.84287, -1.7811, -1.4792, -1.3465, -1.1287, -1.2442, -1.0138, -1.0155, -0.83597, -1.0295, -1.3312, -1.2932, -1.4636, -0.91007, -0.7217, -0.91422, -0.43768, -0.45618, -1.3501, -1.0353, -0.69839, -0.912, -0.86292, -1.0496, -0.80288, -0.42316, -0.89189, -1.2367, -0.59829, -0.82854, -0.17422, -0.13364)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.8305, -1.3747, -1.2648, -1.0548, -0.80461, -0.62518, -0.79874, -0.9037, -0.61828, -1.2379, -1.3482, -1.1932, -1.2876, -1.2727, -1.985, -2.0099, -2.0247, -1.6439, -1.4805, -1.7065, -1.5958, -1.2129, -1.6271, -1.8869, -1.5425, -1.6397, -1.8794, -1.7913, -1.5403, -1.7086, -0.99957, -1.1678, -1.3357, -1.1386, -1.2081, -1.0198, -1.8859, -1.4049, -1.8191, -1.5514, 0.023271, -1.4723, -1.371, -1.814, -2.1164, -1.563, -1.5777, -1.9931, -1.6801, -2.0626, -1.7401, -1.382, -1.7373, -1.6044, -1.8285, -1.5251, -0.60472, 0.64566 )), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.7715, -2.9358, -2.059, -2.4567, -2.178, -2.2988, -2.1034, -2.3327, -2.314, -2.157, -2.098, -2.2676, -2.2741, -2.1313, -2.8338, -2.2703, -2.039, -2.1486, -1.8943, -1.834, -1.8851, -2.0213, -0.61385, 0.069984, 0.070269, 0.90947, 1.5968, 1.5699, 1.2938, 1.6316, 0.16238, 0.22566, -0.12398, 0.41864, 0.11115, 0.27903, 0.8615, 0.1493, 1.2974, -1.2458, -1.404, -3.612, -2.7087, -2.2865, -1.1036, -0.98605, -0.54312, -2.4153, -2.5295, -1.8163, -2.2852, -0.57137, -0.63458, 0.4624, 1.6921, 2.4776, 2.8338, 3.1303)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.098804, 0.56716, 1.0031, 1.3854, 1.7936, 2.5883, 2.3739, 1.892, 0.99601, 0.44224, 0.94348, 0.37037, -0.021034, 0.053731, 0.21842, 0.02306, 0.066196, -0.63761, -0.35125, -0.26844, -0.58678, -0.65438, -0.71807, -0.62297, -1.2239, -0.75573, -1.0756, -1.0586, -0.76954, -0.95455, -1.7038, -1.843, -1.8669, -1.6253, -1.9312, -1.5826, -1.7684, -1.892, -1.2066, -1.2372, -1.2117, -1.1063, -1.087, -1.1207, -1.3447, -1.3718, -0.35295, -0.79913, -0.83841, -1.0848, -0.35242, -0.97423, -0.4607, -0.87531, -1.4323, -1.493, -1.4178, -1.2133)), .Names = c("args", "vals" )), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.5466, -2.3681, -2.6224, -3.0472, -3.8854, -4.2686, -3.8078, -3.2147, -3.0718, -2.7762, -2.7236, -2.5308, -3.2928, -2.7877, -3.3594, -3.4924, -2.9802, -2.7203, -2.6798, -2.1874, -2.0187, -2.0023, -2.0047, -2.1081, -2.5776, -2.3074, -2.3492, -2.2424, -2.3186, -1.9346, -1.1333, -0.88048, -0.9283, -0.4244, -1.9794, -0.54051, -1.1824, -1.5526, -1.5425, -1.0785, -1.7195, -3.2952, -2.4553, -2.39, -1.5981, -1.8299, -1.8514, -2.0582, -2.2394, -1.5851, -1.8478, -0.13488, -0.80823, -0.71257, -0.64596, 0.5024, 0.98108, 2.0211)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.2527, -1.6417, -1.2375, -1.7768, -1.9944, -0.90744, -0.48887, -0.5059, -0.86994, -1.0363, -0.82948, -1.0376, -0.76698, -1.4402, -1.5172, -1.8798, -1.3748, -1.2218, -1.2795, -1.1563, -0.95514, -1.2946, -1.2071, -1.2071, -1.3576, -1.8372, -1.5284, -1.7639, -1.2731, -0.81087, -1.1205, -1.6408, -1.0565, -1.5893, -1.3715, -1.8063, -0.99967, -0.88289, -1.2689, -1.9939, -2.1569, -1.5939, -1.5194, -0.78723, -1.5329, -0.99591, -1.3906, -1.1312, -0.60552, -1.1972, -1.0801, -0.74178, -0.70749, -0.032406, 1.6001, 1.3215, 0.71199)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.0143, -0.80716, -0.90052, -0.91978, -0.86863, -1.251, -1.3839, -1.3124, -0.66518, -0.80787, -1.1763, -1.0807, -1.6122, -1.2668, -1.843, -1.6732, -1.632, -1.7119, -1.6041, -1.5334, -1.6946, -1.6099, -1.3759, -1.4808, -1.6325, -1.6107, -1.6168, -1.4689, -0.9167, -1.1712, -0.86935, -1.3319, -1.5854, -1.0442, -0.95923, -0.9685, -1.1301, -1.3559, -2.0001, -1.904, -1.5139, -1.4099, -1.9853, -1.7578, -1.5256, -2.0745, -1.4741, -1.6102, -1.6673, -0.44619, -1.3883, -0.9464, 0.039786, 1.1473, 1.1929, 1.8366)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.8022, -2.7567, -2.6208, -2.4485, -2.6207, -1.8639, -1.5712, -1.1596, -0.60345, -1.0266, -0.28794, -1.1413, -0.92926, -1.5798, -1.6448, -1.3155, -1.3594, -1.9011, -2.2338, -2.2802, -1.9042, -2.4548, -2.7236, -1.6292, -2.1842, -1.8546, -2.2061, -2.2971, -2.1818, -2.1488, -1.8793, -1.6506, -1.5604, -1.6285, -1.8928, -1.6833, -1.8787, -1.648, -1.8299, -1.8796, -2.0378, -2.5248, -2.372, -2.2715, -1.4612, -1.3099, -1.7588, -1.9286, -1.9729, -1.6712, -2.092, -1.7958, -1.9246, -2.0138, -1.7633, 0.37726, 1.6916, 1.3501)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.27515, 0.51283, 0.71669, 0.95748, 1.3638, 1.7739, 1.8032, 1.6298, 1.4504, 1.2996, 1.5536, 0.91621, 0.64563, 0.30894, 0.52025, 0.46398, -0.49047, -0.25551, -0.73395, -0.71207, -0.62867, -0.86447, -0.77196, -0.83368, -1.1805, -1.3374, -1.6298, -1.3922, -1.6275, -1.6827, -1.1139, -1.2841, -1.4273, -1.1431, -0.75992, -0.80388, -1.2353, -0.5556, -0.67353, -1.3565, -1.4599, -0.95032, -0.8221, -1.2258, -0.7137, -0.69885, -1.3797, -0.57731, -0.38457, -0.61111, -0.46575, -0.47485, -0.68962, -0.71412, -1.2092, -1.2743, -1.3927, -1.4753)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-4.1022, -4.2534, -4.4378, -3.7574, -3.801, -3.4211, -3.2858, -3.2989, -3.6529, -3.3334, -3.4396, -3.2918, -3.3722, -3.5124, -3.3288, -3.1227, -1.7678, -0.81458, 1.8906, 1.1111, 1.5919, 1.5818, 3.2307, 3.4077, 3.7184, 3.8384, 4.4754, 4.072, 3.9207, 4.0182, 2.922, 2.8843, 2.8827, 2.8448, 2.8126, 3.005, 4.0054, 3.5281, 3.8668, 0.9327, 0.096867, -3.3952, -3.06, -2.6703, -1.9956, -1.9027, -1.9665, -3.8593, -4.2911, -2.4844, -3.669, -0.43768, -1.0939, 0.95939, 2.39, 4.2534, 3.6148, 4.383)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.5505, -2.4491, -2.285, -2.234, -2.13, -1.988, -2.3272, -2.3893, -2.6542, 0.22354, -2.4932, -2.4512, -1.0397, -1.9016, -1.7318, -1.0406, 0.59166, 0.08764, 0.78481, 1.0425, 1.4651, 1.8966, 1.3582, 2.1972, 2.9122, 2.6157, 2.1388, 2.384, 1.4098, 1.9567, 2.7662, 1.62, 2.9011, 2.2204, 2.9271, 2.8923, 2.5272, 1.3125, -0.47399, -3.3681, -3.1407, -3.2044, -2.1731, -1.8413, -2.1645, -3.3795, -3.4742, -2.3603, -3.7444, 0.17153, -1.3046, 0.15857, 1.9574, 3.0514, 2.5748, 3.3268)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.2682, -2.0378, -2.3661, -1.8691, -2.3196, -1.8782, -1.9847, -1.7841, -1.5515, -1.6619, -1.7558, -1.8905, -1.8175, -1.146, -1.1364, 0.38376, 1.8603, 1.4784, 1.7256, 1.726, 1.6531, 1.7097, 1.5349, 1.6342, 1.4803, 1.4754, 1.3678, 1.7578, 1.808, 1.0281, 0.95571, 1.4594, 1.8077, 1.5619, 1.795, 1.4462, 1.8131, -0.18738, -0.60884, -2.4798, -1.5005, -1.2006, -0.66347, -1.2924, -1.2758, -1.3807, -0.58783, -0.8918, -1.7464, 0.29046, -0.025449, 0.46437, 1.9269, 2.2104, 2.3196, 2.7216)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58), vals = c(-2.3757, -3.7815, -4.4686, -3.1403, -3.5073, -3.7768, -3.8978, -3.9283, -3.5931, -3.7889, -3.9335, -3.8209, -1.5319, -3.2229, -2.7382, -1.3633, 1.1983, 0.64008, 1.0222, 1.6351, 1.8606, 2.2717, 2.818, 3.1313, 3.2944, 3.2181, 2.8944, 2.8381, 2.9004, 3.3313, 3.7637, 2.5325, 3.2123, 3.2608, 3.963, 4.0358, 3.3732, 2.1083, -1.3061, -4.0378, -3.301, -2.8992, -2.1248, -1.7525, -1.489, -4.5086, -3.8503, -2.6474, -4.6998, 0.97213, 0.9847, 1.1808, 4.9464, 4.4504 )), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.9647, -2.8465, -2.7535, -2.7667, -2.9503, -2.5141, -2.2861, -2.7593, -2.7662, -2.3499, -2.901, -2.0403, -2.1136, -2.2808, -1.4499, -2.1873, -1.7927, -1.1691, 0.50762, -0.3823, 0.35563, 0.63589, 1.5066, 1.8207, 1.6716, 2.2113, 2.3232, 2.1804, 2.219, 2.2771, 1.2564, 1.3094, 1.6742, 1.4324, 1.1455, 1.3402, 1.4883, 1.0765, 1.962, 0.037706, -1.1688, -2.2425, -1.7824, -1.3859, -0.98286, -1.1925, -1.3082, -2.429, -2.731, -1.8424, -2.3956, -0.31538, -0.60671, 0.087781, 1.4027, 2.4532, 2.4028, 3.1717)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.82586, 0.95486, 0.89852, 1.2833, 1.4719, 2.0835, 2.2499, 2.3295, 2.6478, 2.5256, 2.6215, 0.84617, 1.9111, 1.6534, 1.3125, 1.2033, 1.4624, 0.66444, -0.3221, -0.075235, -0.17418, -0.66227, -0.63085, -1.0554, -0.94173, -1.0251, -0.76692, -0.53302, -1.4666, -1.258, -1.1464, -2.2161, -1.4588, -1.4825, -0.45397, -0.68988, -0.90199, -1.0943, -1.2507, -1.252, -0.24918, -1.6052, -1.559, -1.8464, -1.4468, -1.3952, -1.4436, -1.3475, -1.1845, -1.8209, -1.7579, -1.4183, -1.6582, -1.836, -2.2532, -2.5001, -2.4932, -1.86 )), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.2518, -1.2025, -1.0684, -1.1692, -1.118, -0.80405, -0.82036, -0.92475, -0.79807, -0.49089, -0.68753, -0.55966, -0.80062, -0.49696, -0.75615, -0.91673, -0.82756, -0.59655, 0.6894, 0.49021, 0.4045, 0.92317, 0.51972, 0.66154, 0.64959, 0.45592, 0.59671, 0.61468, 0.77217, 1.0582, 0.4629, 0.70546, 0.61369, 0.8733, 0.52559, 0.8406, 0.80432, 0.4842, 0.27694, -0.018798, -0.07291, -0.38115, -0.75655, -0.97372, -0.071398, -0.7185, -1.241, -0.8384, -0.74566, -0.72121, -0.75247, -0.10146, -0.3927, -0.070677, 0.79456, 1.2025, 1.68, 1.2607)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.4009, -2.6158, -1.9066, -1.8948, -1.4874, -1.5892, -1.3921, -1.3654, -1.4148, -1.6128, -1.7279, -1.5062, -1.0767, -1.8399, -1.7329, -1.2085, -0.85771, -0.46659, 0.26335, 0.096116, 0.22733, 0.32166, 0.79156, 1.5095, 1.3546, 1.7305, 1.7231, 1.5473, 1.5143, 1.3566, -0.032963, 0.50067, 0.98325, 0.60991, 1.1406, 1.1152, 1.51, 1.4206, 2.1084, 0.79058, -0.94401, -1.2661, -1.4958, -1.8016, -1.1233, -1.3229, -1.7649, -0.80416, -1.343, -0.46563, -0.77728, 0.09011, 0.011545, -0.042161, 0.79544, 1.9066, 1.7829, 1.9625)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.236, -2.1199, -1.79, -1.17, -1.3822, -1.3758, -1.2821, -1.2688, -0.78279, -0.64987, -0.83769, -0.82933, -1.258, -0.72608, -1.3391, -1.9359, -1.3032, -1.9297, -2.0197, -1.8419, -1.592, -1.6896, -1.7644, -2.2208, -2.1856, -2.2103, -1.9618, -1.7803, -2.1709, -1.6451, 0.16225, 0.17169, 0.027947, -0.31748, -0.091141, 0.17765, 0.45627, 0.87568, 0.66053, -0.21036, 0.14771, -1.4328, -1.7523, -0.97116, -0.74562, -0.52471, -0.29803, -0.91412, -1.1102, -1.0996, -1.6844, -1.3647, -1.6583, -1.4025, -1.2641, -1.538, -1.8828, 0.50754 )), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.3828, -1.3701, -1.8362, -1.9782, -2.2321, -2.6164, -1.974, -1.7956, -1.7807, -1.778, -1.9007, -1.6936, -1.7139, -1.7765, -1.4176, -1.591, -1.6128, -1.5797, -1.5089, -1.5447, -1.3361, -1.4867, -1.3247, -1.1999, -1.2894, -1.2243, -0.93212, -0.87465, -1.1033, -0.95942, -0.73921, -0.70976, -1.0494, -0.58553, -0.8757, -0.96322, -0.75712, -0.94316, -0.77872, -1.1979, -1.5335, -1.3287, -1.2863, -1.3147, -1.3252, -1.4355, -1.4558, -1.1293, -1.2362, -0.68634, -0.27041, -0.86892, -0.096449, -0.26915, 0.69522, 1.6068, 1.4974, 2.0524)), .Names = c("args", "vals" )), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-3.1223, -3.2783, -2.887, -2.6972, -2.8282, -2.5501, -2.6004, -2.2922, -2.465, -2.4474, -2.4604, -2.059, -1.9968, -2.2331, -2.1022, -2.1254, -1.3521, -0.98427, 0.48172, -0.3805, 0.092261, 0.46139, 1.6261, 1.9909, 1.7876, 2.2637, 2.4978, 2.4403, 2.3742, 2.3813, 0.0087803, 0.38007, 0.76438, 0.11169, 1.1245, 0.088837, 1.3653, 1.1192, 2.0883, -0.31288, -0.50561, -1.682, -1.3057, -0.74766, -0.66427, -1.5915, -1.9436, -1.9885, -2.3045, -2.156, -2.3584, 0.10199, -0.98724, 0.11465, 0.92157, 2.6453, 2.3028, 3.0481)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.56036, 0.47119, 0.68405, 1.1679, 1.6553, 1.8647, 1.876, 1.9879, 1.5718, 1.4256, 1.591, 0.69104, 0.65341, 0.88616, 0.51554, 0.65228, 0.38495, -0.10926, -0.025263, -0.41453, -0.70473, -0.46509, -0.41516, -0.68369, -0.71685, -0.91793, -1.4537, -1.4579, -1.2596, -1.3936, -0.881, -1.4757, -1.1735, -1.198, -0.61134, -0.62953, -0.54527, -0.75178, -1.003, -0.47245, -0.78081, -0.68434, -0.52801, -0.71609, -0.69067, -0.92498, -0.7524, -0.90356, -0.1212, -0.47989, -0.91712, -1.06, -1.3278, -1.2272, -1.3411, -1.5365, -1.4069, -2.0408)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-0.68659, -0.90586, -0.88038, -0.91058, -0.9549, -1.5964, -1.4389, -1.2262, -1.2513, -1.2167, -0.84325, -1.8643, -1.0332, -1.5157, -1.3701, -1.2103, -0.70187, -1.2572, -2.2039, -1.8386, -1.6683, -1.9815, -1.6022, -1.7611, -2.0166, -2.2263, -1.7727, -2.033, -1.9066, -1.8568, -2.3642, -2.1568, -2.0101, -2.4108, -2.131, -2.208, -2.3814, -2.4148, -2.172, -2.2718, -2.7133, -2.4115, -2.5691, -2.2144, -2.2019, -2.0138, -3.1516, -2.2947, -2.086, -1.8884, -1.8032, -2.1694, -2.0265, -2.5761, -1.7054, -0.27012, -0.11167, 1.3106)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.40894, 0.44998, 0.88768, 1.1766, 1.3692, 1.8087, 2.0432, 1.856, 1.5051, 1.3141, 1.1953, 1.1905, 1.0657, 1.2501, 1.2471, 1.0179, 0.80295, 0.73537, 0.30854, 0.40773, 0.16358, 0.2516, -0.20718, -0.29804, -0.40783, -0.89264, -1.0557, -0.86111, -0.74738, -0.78292, -1.12, -1.8114, -1.8994, -0.90914, -1.2612, -1.3961, -1.1666, -1.1697, -0.69896, -0.92088, -0.37355, -0.54371, -0.66163, -1.1993, -0.85896, -0.66826, -1.3009, -0.56389, -0.48078, -0.88382, -0.48478, -0.98807, -0.71154, -0.96145, -1.3076, -1.2825, -1.5546, -1.5198)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-3.5477, -3.6674, -3.5145, -3.7037, -3.8575, -3.0589, -3.1529, -2.9369, -4.0039, -3.0987, -2.6082, -2.5499, -3.3606, -3.7775, -3.5615, -2.9392, -2.2508, -2.0557, -0.14162, -1.0419, -0.47629, -0.36151, 0.75091, 1.363, 1.4297, 2.0365, 4.0194, 3.7775, 2.7367, 3.48, 1.9695, 2.1749, 2.8554, 1.9881, 2.7153, 2.2726, 2.3325, 1.7846, 2.4141, 1.4338, -2.0406, -3.3874, -3.4597, -2.6996, 0.038456, 1.2738, 1.1096, -2.8358, -3.4847, -2.2461, -2.6384, -1.3893, -1.3042, -0.43789, 1.0225, 2.2846, 2.4933, 4.0445)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-4.2716, -4.3934, -3.7853, -4.0175, -3.5392, -3.3898, -3.3433, -3.5461, -3.6025, -3.4312, -3.5075, -3.2676, -2.7472, -3.0146, -2.6276, -3.2024, -1.5914, -0.44301, 1.8315, 1.2441, 1.835, 2.3267, 2.6673, 2.8035, 3.2297, 3.2743, 3.4706, 3.399, 3.215, 3.7177, 2.0619, 2.2402, 2.7754, 1.96, 2.8816, 2.427, 4.0713, 3.1269, 3.6022, -0.40357, -1.6734, -4.1315, -4.0622, -3.9598, -3.2295, -3.4376, -3.1007, -4.2366, -4.4452, -2.7374, -4.0234, 0.16725, -0.5718, 0.84041, 2.7774, 4.1935, 3.986, 4.8334)), .Names = c("args", "vals" )), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.053, -0.85027, -0.81998, -0.53162, -0.30978, -0.22342, -0.80429, -0.94834, -1.0864, -1.3897, -1.3734, -1.2287, -1.5425, -1.2669, -1.1059, -1.2322, -1.123, -0.95899, 0.40183, -0.11467, 0.37883, 0.83388, 0.74308, 0.68975, 1.137, 1.1322, 1.3577, 1.043, 1.0162, 1.3241, 0.279, 0.40651, 0.86622, 0.18417, 0.73219, 0.6233, 1.5088, 1.2358, 1.4264, -0.82565, -0.96114, -1.5056, -1.7218, -2.0087, -1.8178, -1.2654, -1.5196, -1.717, -1.8463, -1.7929, -1.0914, -0.48956, -0.86869, -0.27297, 0.91833, 1.3114, 1.5189, 1.8675)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-3.2335, -3.2497, -3.3629, -3.4514, -2.8834, -3.1661, -3.337, -3.5095, -3.5409, -3.3908, -3.5133, -4.0007, -2.5691, -3.1956, -2.1316, -2.8473, -2.6918, -2.7066, -3.1876, -3.0292, -2.7803, -3.1458, -2.5631, -2.3321, -2.1857, -2.2455, -2.7311, -2.6206, -2.3136, -2.5741, -3.3263, -2.8533, -3.2045, -3.0007, -2.9926, -2.8712, -2.6691, -1.793, -1.6475, -1.6395, -1.9024, -1.408, -1.4361, -1.0962, -1.1038, -0.97, -1.4769, -0.43247, -0.30805, -0.49236, -0.53756, -0.62158, -0.84938, -0.84645, -0.58705, 0.65523, 1.1847, 0.19001)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.0392, -2.1691, -2.0578, -2.075, -2.4869, -2.2936, -2.2224, -1.9854, -1.7529, -1.6047, -1.1403, -1.4723, -2.0383, -1.5284, -2.3009, -2.3348, -2.4768, -2.7808, -2.5272, -2.2327, -2.3782, -2.3185, -2.6027, -2.1189, -2.557, -3.0252, -2.7805, -2.8244, -2.5399, -2.5585, -1.6589, -2.0239, -2.0476, -1.8477, -2.2122, -1.5746, -1.6198, -1.5688, -1.7122, -2.5672, -2.1794, -3.0177, -2.6567, -2.442, -2.5096, -1.21, -0.94896, -1.5294, -1.1271, -1.3341, -1.6897, -1.5791, -1.5952, -0.04356, 2.5817, 2.5157, 2.2601, 1.6914)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.025197, 0.11202, 0.47555, 0.44883, 0.44042, 1.478, 1.3552, 1.3188, 1.7679, 2.0945, 1.2539, 2.1788, 2.5413, 2.4165, 0.88462, 1.5853, 0.57102, 0.52045, -0.83179, -0.33901, -0.5707, -0.17024, -0.42449, -1.6711, -1.3631, -1.4299, -1.7042, -1.58, -1.6653, -2.0181, -0.61634, -0.89007, -1.544, -0.42811, -0.9804, -0.78747, -2.0881, -0.81021, -0.89544, -0.69954, -1.283, -1.739, -1.7536, -1.6337, -0.70943, -1.2875, -1.0047, -0.77491, -0.91674, -0.92904, -1.1199, -0.65612, -0.97015, -0.8954, -1.7192, -2.0214, -2.0713, -1.228)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-0.79923, -0.74363, -0.81837, -0.4437, -0.25429, -0.5812, -0.60233, -0.5342, -0.42219, -0.85315, -0.71974, -0.92185, -1.0703, -1.2446, -0.87028, -0.37878, -0.99054, -0.32998, 0.36489, -0.23087, 0.17922, 0.3855, 0.55692, 0.52552, 0.63893, 0.66148, 0.65238, 0.52749, 0.50931, 0.31145, 0.1436, -0.17414, 0.10909, -0.25276, -0.13092, -0.038859, 0.040268, -0.069377, 0.155, 0.0088495, -0.68163, -1.1391, -0.57225, -0.84645, 0.18858, 0.1223, 0.0091717, -0.99218, -1.0068, -1.0931, -1.3051, -0.10974, -0.66219, -0.34518, 0.56173, 0.97741, 1.1391, 1.2811)), .Names = c("args", "vals" )), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(1.0239, 1.2401, 1.453, 1.8113, 2.3137, 3.313, 3.1167, 3.1997, 2.6293, 2.3013, 2.4541, 2.3017, 2.6378, 2.2296, 1.601, 1.31, 1.6575, 0.71794, -0.55239, -0.34436, -0.47208, -0.59243, -0.97043, -1.8587, -1.4149, -1.7983, -2.316, -2.2465, -2.2343, -2.3988, -2.7557, -3.0756, -3.1678, -2.1588, -3.1167, -2.841, -3.7943, -2.6958, -2.2207, -1.2781, -0.51212, -0.72825, -0.76581, -1.0616, -1.4957, -0.35509, -0.82237, -0.34428, -0.043276, -0.56915, -0.38651, -0.21491, -0.15788, -0.4082, -1.497, -2.2965, -2.4047, -1.9422)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.98997, 1.5709, 1.6223, 2.5249, 2.6054, 3.6676, 3.0687, 2.6426, 0.14083, -0.075099, 0.68627, 0.045393, -0.83418, -0.49673, -0.33204, -0.83616, -1.3025, -1.671, -1.5832, -1.3332, -1.5965, -1.2317, -1.7676, -1.8897, -1.9718, -2.3162, -2.331, -2.3796, -2.1399, -2.1284, -1.3623, -1.8621, -2.2319, -1.5028, -2.0204, -1.5563, -1.5661, -1.6843, -1.1408, -1.9366, -0.93642, -2.1324, -2.0376, -1.4161, -1.9304, -2.0632, -2.1462, -2.3336, -2.2837, -1.5156, -2.3568, -1.8262, -1.9305, -1.827, -2.3452, -2.5024, -2.3992, -1.7664)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.49392, 0.50748, 1.0213, 1.3177, 1.4437, 1.8346, 1.9425, 1.6761, 1.4438, 1.1832, 1.481, 1.0293, 0.92333, 1.3663, 0.89126, 0.79769, 0.98061, 0.030007, -0.053868, 0.10333, -0.15901, -0.21221, -0.67295, -0.61341, -0.63164, -0.71547, -1.0346, -0.94349, -0.78858, -1.0334, -1.4511, -1.8427, -1.7253, -1.39, -1.4336, -1.3142, -1.2767, -1.3432, -0.90628, -0.78193, -0.67202, -0.49273, -0.87698, -0.55959, -0.82487, -0.61497, -0.66968, -0.53121, -0.1648, -0.36448, -0.095286, -0.6651, -0.39045, -0.77562, -1.3247, -1.1639, -1.3318, -1.2161)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-0.47826, -0.53248, -0.64984, -1.9241, -0.71385, -0.89936, -0.97666, -1.1178, -1.6219, -1.5896, -1.3785, -0.55225, -1.4169, -1.4845, -1.0522, -0.63978, -0.52304, 0.010697, -0.30595, -0.39137, -0.058812, -0.19731, 0.087949, 0.27921, 0.41393, 0.39551, 0.69758, 0.76925, 0.26941, 0.66833, 0.71016, 0.26457, 0.41245, -0.20376, 0.44032, -0.084359, 0.47477, 0.10467, -0.34477, -1.1296, -0.77298, -1.0072, -1.1183, -1.0175, -1.1824, -0.58034, -1.4363, -1.0394, -1.0452, -1.417, -1.2137, -1.0072, -0.89876, -0.53502, 0.26613, 0.93286, 0.68914, 1.4041 )), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.1578, -2.4369, -2.4397, -2.882, -3.02, -2.5325, -2.3687, -2.1503, -2.3904, -2.0253, -2.0149, -2.4346, -1.9018, -2.6028, -2.4781, -2.6484, -1.7231, -1.5891, -1.6629, -1.747, -1.5241, -1.6891, -0.65261, -0.18204, 0.34165, 0.70719, 2.2579, 2.1696, 1.0849, 2.0468, 1.2916, 1.1105, 0.9564, 1.6266, 1.2679, 1.3741, 0.40911, 0.067718, 0.092934, -1.1088, -0.60987, -2.6767, -1.9503, -2.8238, -1.7587, -1.9005, -1.7294, -2.6747, -2.5421, -2.111, -2.8308, -1.645, 0.042504, -0.18821, 0.79597, 2.4264, 1.4003, 3.0803)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-0.13425, -0.23329, -0.20175, -0.62691, -0.80816, -1.8992, -2.3735, -2.5239, -2.4828, -2.1844, -2.2455, -1.4901, -2.1304, -2.0703, -1.1428, -1.0724, -1.1313, -0.21036, -0.31316, -0.099941, -0.14913, -0.21452, -0.012223, -0.089673, -0.27305, -0.3253, -0.24045, -0.32318, -0.50836, -0.51695, -0.72729, -0.40319, -0.72877, -0.79741, -1.0287, -0.79627, -1.1574, -1.4649, -1.1678, -0.90867, -0.73269, -0.017765, -0.35069, -0.63305, -0.70216, -0.77182, -1.0831, -0.97779, -0.98144, -0.70151, -0.92983, -0.62219, -0.57214, -1.0818, -0.9223, 0.16176, 0.56869, -0.52284)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58), vals = c(-3.2072, -3.1093, -3.3515, -3.1328, -2.8916, -2.911, -2.5433, -2.2632, -2.0722, -1.616, -1.9665, -1.9428, -1.9284, -2.1191, -1.7945, -1.758, -1.2232, -0.5727, -0.94536, -0.89382, -0.7164, 1.1023, 1.4137, 1.9329, 2.4356, 3.4934, 3.1328, 2.5395, 3.1733, 1.8839, 1.959, 1.8446, 1.6232, 1.9893, 1.7864, 1.7587, 1.7208, 0.69304, -0.43172, -2.3092, -2.5603, -1.8318, -0.80958, -0.70384, 0.0025463, -1.6932, -1.363, -1.6496, -1.6445, -1.8138, -1.7163, -2.1999, 1.2047, 1.1636)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.7902, -2.5524, -2.0425, -2.1045, -1.5762, -1.7247, -1.4946, -1.8115, -2.1901, -1.9568, -2.0513, 0.15937, -0.96575, -1.5442, -0.93174, -1.4219, -1.08, -0.64003, 1.2032, 0.010765, 0.76469, 1.0427, 1.9819, 2.0584, 2.0905, 1.8881, 1.2435, 0.84331, 1.4012, 1.0293, -0.28936, -0.54818, 0.48937, -0.18132, 0.4834, 0.28233, 0.29678, 0.57683, 0.35394, -0.26434, -1.1934, -1.6172, -1.4672, -1.3209, -1.2147, -0.71576, -0.79475, -1.7755, -1.3593, -0.68891, -0.86412, -0.20407, -0.54233, -0.24714, 2.0776, 2.1261, 1.7831, 1.614 )), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.5099, -1.5155, -1.87, -1.7792, -1.9429, -2.012, -1.197, -0.90152, -1.0713, -1.2163, -1.1657, -0.46713, -1.6654, -1.9698, -1.3536, -1.0744, -0.98049, -0.76706, -0.15464, -0.36091, 0.36327, 0.27185, 0.53632, 0.97095, 1.0734, 1.1096, 1.7406, 1.6457, 1.0535, 1.2861, 0.88486, 1.2849, 1.6269, 0.94397, 1.9107, 1.6124, 2.1197, 2.2532, 1.8136, 0.22014, -0.92087, -1.9369, -1.937, -2.1627, -1.5439, -1.2826, -1.8036, -2.2532, -2.3862, -1.984, -2.3265, -0.023233, -0.87743, -0.32979, 1.6081, 1.7863, 3.4716, 1.7669)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57), vals = c(-1.6706, -1.8633, -1.7941, -1.9005, -2.0288, -2.6508, -1.8789, -1.3332, -2.0486, -2.0754, -1.8191, -1.0318, -1.8848, -2.0822, -2.1328, -1.3562, -1.4967, -1.4228, -0.43553, -0.68684, -0.17186, -0.017898, 0.24051, 0.55692, 0.62636, 0.85765, 1.1391, 1.2505, 0.83445, 1.1686, 0.54151, 1.0714, 0.76261, 0.57714, 0.89749, 0.76769, 0.70533, 1.1794, 0.95823, 0.091374, -0.40309, -1.7602, -1.615, -1.5642, -1.2724, -1.3008, -1.258, -1.2735, -1.4076, -0.86137, -1.562, 0.56904, 0.20466, 0.40973, 1.8705, 1.4415, 2.4995)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 ), vals = c(-0.30009, -0.0028192, 0.01685, 1.7111, 2.5692, 3.5631, 2.6037, 3.3339, 2.0959, 1.1893, 1.2186, 1.5457, 1.5274, 1.5534, 1.6092, 0.76756, 1.1001, 0.79854, 0.17324, 0.45146, -0.18215, -0.16527, -0.69817, -0.80132, -0.26416, -0.73839, -0.69653, -0.76767, -0.83233, -1.1554, -0.29379, -0.74948, -0.53187, -0.6071, -0.17858, -0.39755, -0.81972, -0.069527, -0.4296, -0.25986, -0.86598, -0.81184, -0.7176, -0.70874, -1.824, 0.44805, -1.1588, -1.0474, -0.7128, -1.6046, -1.6127, -1.2834, -1.4646, -0.60561, -1.8979, -0.94163)), .Names = c("args", "vals")), structure(list( args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-1.813, -1.5468, -1.8535, -1.6417, -1.518, -1.5876, -1.1776, -0.92776, -0.55519, -0.46922, -0.49639, -0.96518, -0.83886, -0.99835, -0.65509, -0.81314, -0.50154, -0.48024, 0.085173, -0.14656, 0.40238, 0.30629, 0.56055, 0.69524, 0.64815, 0.81082, 1.3061, 1.2525, 0.773, 1.0251, 0.58044, 0.98263, 1.0582, 0.54784, 1.2109, 1.134, 1.2546, 1.6417, 1.1376, 0.083988, -0.067499, -0.78773, -1.1319, -1.5017, -0.93007, -0.4107, -0.56333, -1.0376, -1.2627, -1.1342, -1.3224, 0.068414, -0.44102, -0.2047, 1.238, 0.97678, 1.572, 0.8015)), .Names = c("args", "vals" )), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.0649, -2.267, -2.3289, -2.736, -2.6242, -2.3911, -2.3438, -2.4359, -1.7199, -1.916, -1.907, -1.8135, -1.4666, -1.3587, -1.483, -1.258, -1.2419, -0.76389, 0.27932, -0.38177, 0.22691, 0.6127, 0.78523, 0.73521, 1.189, 1.2331, 1.2198, 1.1854, 0.82822, 1.0845, 0.64536, 0.75396, 1.0945, 0.7805, 1.465, 1.3482, 1.0696, 1.6814, 1.6881, -0.13959, 0.1298, -1.7667, -1.4062, -2.0362, -1.5186, -1.2403, -0.98331, -2.2802, -2.0245, -1.8417, -2.2423, -0.10815, -0.94332, -0.43899, 1.1745, 1.281, 1.9511, 1.3293)), .Names = c("args", "vals" )), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(0.38609, 0.49621, 0.27106, 0.52798, 0.64974, 0.39951, 0.35059, 0.092336, 0.34667, 0.086345, -0.058399, 0.1397, 0.0046862, 0.21375, 0.43467, 0.038462, 0.17312, -0.70196, -1.2219, -1.164, -0.96399, -1.439, -1.1791, -0.80696, -1.2866, -1.275, -0.85485, -0.83844, -1.3278, -1.3487, -0.49621, -1.0378, -1.5265, -1.2573, -1.0738, -1.2892, -1.3397, -1.0056, -0.65868, -1.7747, -1.6357, -1.1527, -1.4047, -1.3668, -2.0062, -1.3933, -2.0862, -1.0876, -0.85722, -1.3112, -1.525, -1.3382, -1.072, -1.3831, -1.939, -0.59218, -1.0532, -0.16516)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.5838, -2.764, -2.3922, -2.7309, -2.6163, -2.8835, -2.3395, -2.7239, -2.252, -2.6999, -1.9798, -1.8271, -3.0194, -2.4282, -2.6319, -2.0558, -2.5744, -2.9578, -2.2049, -2.2496, -2.3323, -2.1977, -1.8155, -1.5337, -1.1055, -1.8779, -1.9381, -1.9513, -1.5836, -1.4386, -0.64091, -0.74621, -1.0965, -0.92915, -1.4551, -0.81951, -1.4372, -0.64898, -0.55435, -1.5133, -1.7801, -2.8072, -2.1376, -2.228, -2.5776, -2.0375, -1.5044, -2.3069, -2.1376, -1.6664, -2.4527, -0.33095, -0.7711, 1.1506, 2.9691, 3.5009, 2.8835, 0.81016)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-0.6002, -0.85355, -0.59307, -0.96863, -1.2549, -1.2476, -1.2819, -1.2215, -1.1295, -1.1324, -1.0564, -0.96113, -1.1498, -0.59721, -0.97901, -1.0689, -1.125, -1.1842, -0.71227, -1.0388, -0.93141, -0.88634, -0.82168, -0.77656, -0.82573, -0.60789, -0.69569, -0.74296, -0.32223, -0.78054, -0.85635, -0.85452, -1.0228, -0.78708, -0.99687, -0.89283, -0.79915, -0.87398, -0.83541, -1.1011, -1.2227, -1.2293, -1.0708, -0.89701, -0.46645, -1.2829, -0.73478, -1.146, -0.67587, -0.60377, -0.57572, -0.98262, -0.71057, -0.73836, -1.0249, -0.68233, -0.14793, 0.064206)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-0.60649, -0.48247, -1.2019, -1.734, -0.3734, -0.8626, -0.79553, -0.93697, -1.5921, -1.1111, -1.5206, -1.6674, -1.8888, -2.0566, -2.729, -1.5131, -1.7839, -1.8843, -1.6295, -1.6142, -1.3707, -1.6143, -1.2832, -1.2093, -1.8257, -1.4968, -1.3344, -1.173, -1.6312, -1.1131, -0.62312, -0.70205, -1.0231, -0.79068, -0.79858, -0.71482, -0.68275, -0.67075, -0.60547, -1.2601, -0.80877, -1.8324, -1.4516, -1.4864, -1.7459, -1.6272, -1.5206, -1.6363, -1.5739, -1.4586, -1.6633, -1.1393, -0.5076, -0.30912, 1.3953, 1.8888, 1.7916, 1.9369)), .Names = c("args", "vals")), structure(list(args = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58), vals = c(-2.6442, -2.7789, -2.5737, -2.8648, -2.2742, -2.5058, -2.5716, -2.4819, -2.0632, -2.2503, -2.6557, -2.0771, -2.2775, -2.1053, -2.61, -2.7219, -2.2947, -2.589, -2.1912, -2.3053, -1.7013, -1.649, -1.5332, -1.1913, -0.85137, -0.45222, 0.75715, 0.51396, -0.36522, 0.52134, 0.36923, -0.37695, 0.26288, -0.17058, 0.34689, 0.93715, 0.88018, 1.0394, -2.4244, -1.907, -3.603, -4.1606, -2.887, -3.1615, -3.0522, -3.4183, -3.7764, -3.535, -2.9324, -3.3939, -2.4336, -1.7179, -1.4915, 0.2099, 1.2184, 2.5413, 3.603)), .Names = c("args", "vals"))), labels = list(3, 3, 1, 1, 3, 1, 1, 1, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 3, 1, 3, 1, 3, 3, 2, 1, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 1, 2, 2, 3, 3, 2, 1, 3, 1, 2, 2, 2, 3, 3, 1, 2, 1, 1, 1, 2, 2, 3, 2, 2, 2, 2, 1, 2, 2, 3, 3, 3, 3, 2)), class = "functional") )ddalpha/R/depth.graph.r0000644000176200001440000000616312545164373014457 0ustar liggesusers################################################################################ # File: depth.graph.r # Created by: Oleksii Pokotylo # First published: 01.10.2014 # Last revised: 01.10.2014 # # Builds the data depth surfaces for 2-dimensional data ################################################################################ depth.graph <- function (data, depth_f = c("halfspace", "Mahalanobis", "projection", "simplicial", "simplicialVolume", "spatial", "zonoid", "none"), apoint = NULL , main = depth_f , xlim = c(min(data[,1]), max(data[,1])), ylim = c(min(data[,2]), max(data[,2])), zlim = c(0,max(z)) , xnum = 250, ynum = 250 , theta=15, phi=60, bold = F, ...){ x1 <- seq(xlim[1], xlim[2], length = xnum) x2 <- seq(ylim[1], ylim[2], length = ynum) x1.step <- (x1[2]-x1[1]) x2.step <- (x2[2]-x2[1]) all.points <- as.matrix(expand.grid(x1, x2)) all.depths <- rep(0, nrow(all.points)) #library(depth) df = depth_f if (!is.function(depth_f)){ depth_f = match.arg (depth_f) df = switch(depth_f, "none" = function(x, X,...) (0), "zonoid" = depth.zonoid, "halfspace" = depth.halfspace, "simplicialVolume" = depth.simplicialVolume, "simplicial" = depth.simplicial, "Mahalanobis" = function(x, X,...) (.Mahalanobis_depth(x, colMeans(X), solve(cov(X)))), "projection" = depth.projection, "spatial" = depth.spatial ) if (depth_f == "none") zlim = c(0,1) } all.depths = df(all.points, data[,1:2], ...) z <- matrix(all.depths, ncol=ynum, nrow=xnum, byrow=FALSE) z.red <- as.integer((data[,1]-x1[1])/x1.step+1) + as.integer((data[,2]-x2[1])/x2.step+1)*(xnum-1) if (bold) z.red <- c(z.red, as.integer((data[,1]-x1[1])/x1.step+2) + as.integer((data[,2]-x2[1])/x2.step+1)*(xnum-1), as.integer((data[,1]-x1[1])/x1.step+1) + as.integer((data[,2]-x2[1])/x2.step+2)*(xnum-1), as.integer((data[,1]-x1[1])/x1.step+0) + as.integer((data[,2]-x2[1])/x2.step+1)*(xnum-1), as.integer((data[,1]-x1[1])/x1.step+1) + as.integer((data[,2]-x2[1])/x2.step+0)*(xnum-1) ) z.black <- ifelse (is.null(apoint) || !is.numeric(apoint) || length(apoint) != 2, NA, as.integer((apoint[1]-x1[1])/x1.step+1) + as.integer((apoint[1]-x2[1])/x2.step+1)*(xnum-1)) zfacet <- z[-1, -1] + z[-1, -ynum] + z[-xnum, -1] + z[-xnum, -ynum] z.indices.zero <- which(zfacet == 0) cols <- rep("gray", (xnum-1)*(ynum-1)) cols <- replace(cols, z.indices.zero, ifelse (depth_f == "none", NA,"lightblue")) cols <- replace(cols, z.red, "red") cols <- replace(cols, z.black, "black") par(bg = "white") persp(x1, x2, z, xlim=xlim, ylim=ylim, zlim=zlim, r = 10, theta=theta, phi=phi, col=cols, main = main, ltheta=55, shade=0.55, ticktype="detailed", xlab="x", ylab="y", zlab="D(x|X)", border=NA, box=FALSE, ...) } ddalpha/R/depth.spatial.r0000644000176200001440000000673712745655010015015 0ustar liggesusersdepth.spatial.local <- function(x, data, mah.estimate = "moment", mah.parMcd = 0.75, kernel.bandwidth = 1){ if (!is.matrix(x) && is.vector(x)){ x <- matrix(x, nrow=1) } mean <- colMeans(data) if(mah.estimate == "none"){ lambda = diag(ncol(data)) } else { if(mah.estimate == "moment"){ cov <- cov(data) } else if(mah.estimate == "MCD"){ cov <- covMcd(data, mah.parMcd)$cov } else {stop("Wrong parameter 'mah.estimate'")} cov.eig <- eigen(cov) B <- cov.eig$vectors %*% diag(sqrt(cov.eig$values)) lambda <- solve(B) } if (kernel.bandwidth>1){ k <- function(x){ return(sqrt(2*pi)^(-ncol(x))*exp(-rowSums(x^2)/2/kernel.bandwidth)) } }else{ #1/kernel.bandwidth^d k <- function(x){ return((sqrt(2*pi)*kernel.bandwidth)^(-ncol(x))*exp(-rowSums(x^2)/2/kernel.bandwidth)) } } depths <- apply(x, 1, function(x){ n = nrow(data) t1 = t(lambda %*% (x - t(data))) t1 <- t1[which(rowSums(t1) != 0),] return (sum(k(t1))/n - sqrt(sum((colSums( k(t1)*( t1/sqrt(rowSums(t1^2)) ) )/n)^2))) } ) return (depths) } depth.spatial <- function(x, data, mah.estimate = "moment", mah.parMcd = 0.75){ if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if(is.data.frame(data)) data = data.matrix(data) if (!is.matrix(x)){ if(is.vector(x)) x <- matrix(x, nrow=1) if(is.data.frame(x)) x = data.matrix(x) } mean <- colMeans(data) if(mah.estimate == "none"){ lambda = diag(ncol(data)) } else { if(mah.estimate == "moment"){ cov <- cov(data) } else if(mah.estimate == "MCD"){ cov <- covMcd(data, mah.parMcd)$cov } else {stop("Wrong parameter 'mah.estimate'")} cov.eig <- eigen(cov) B <- cov.eig$vectors %*% diag(sqrt(cov.eig$values)) lambda <- solve(B) } depths <- rep(-1, nrow(x)) for (i in 1:nrow(x)){ tmp1 <- t(lambda %*% (x[i,] - t(data))) tmp1 <- tmp1[which(rowSums(tmp1) != 0),] tmp2 <- 1/sqrt(rowSums(tmp1^2)) depths[i] <- 1 - sqrt(sum((colSums(tmp2*tmp1)/nrow(data))^2)) } return (depths) } depth.space.spatial <- function(data, cardinalities, mah.estimate = "moment", mah.parMcd = 0.75){ if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.vector(cardinalities, mode = "numeric") || is.na(min(cardinalities)) || sum(.is.wholenumber(cardinalities)) != length(cardinalities) || min(cardinalities) <= 0 || sum(cardinalities) != nrow(data)){ stop("Argument \"cardinalities\" should be a vector of cardinalities of the classes in \"data\" ") } if (sum(cardinalities < ncol(data) + 1) != 0){ stop("Not in all classes sufficiently enough objetcs") } depth.space <- NULL for (i in 1:length(cardinalities)){ pattern <- data[(1 + sum(cardinalities[0:(i - 1)])):sum(cardinalities[1:i]),] pattern.depths <- depth.spatial (data, pattern, mah.estimate, mah.parMcd) depth.space <- cbind(depth.space, pattern.depths, deparse.level = 0) } return (depth.space) }ddalpha/R/dataf.population2010.r0000644000176200001440000055765313156307576016050 0ustar liggesusersdataf.population2010 <- function() return(structure(list( name = "World population data (2010 revision)", args = "year", vals = "population (in thousands)", dataf = list( structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2309, 2359, 2404, 2446, 2488, 2532, 2578, 2628, 2680, 2733, 2787, 2840, 2895, 2951, 3012, 3079, 3154, 3235, 3317, 3393, 3457, 3508, 3547, 3583, 3624, 3677, 3745, 3825, 3918, 4019, 4127, 4240, 4359, 4487, 4625, 4774, 4936, 5107, 5281, 5449, 5606, 5750, 5883, 6004, 6112, 6210, 6294, 6370, 6448, 6545, 6674, 6839, 7038, 7264, 7511, 7770, 8043, 8328, 8624, 8927, 9233 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 156, 160, 164, 167, 171, 174, 177, 181, 184, 187, 190, 194, 197, 201, 204, 208, 212, 217, 222, 227, 232, 237, 242, 247, 253, 261, 270, 280, 291, 303, 314, 324, 334, 344, 353, 363, 373, 383, 393, 403, 413, 423, 433, 444, 455, 466, 478, 490, 502, 515, 528, 542, 556, 570, 585, 601, 617, 633, 649, 666, 683 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 62, 63, 65, 66, 68, 70, 71, 74, 76, 80, 84, 88, 94, 101, 108, 115, 123, 131, 140, 150, 160, 169, 179, 191, 205, 224, 249, 278, 308, 336, 359, 375, 385, 393, 405, 424, 452, 487, 524, 560, 590, 613, 629, 642, 653, 664, 676, 688, 700, 712, 723, 734, 744, 755, 766, 777, 788, 799, 810, 822, 834 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1141, 1162, 1183, 1207, 1231, 1257, 1284, 1313, 1342, 1373, 1405, 1438, 1473, 1509, 1546, 1585, 1624, 1665, 1708, 1752, 1797, 1844, 1892, 1943, 1998, 2057, 2121, 2189, 2261, 2337, 2415, 2494, 2574, 2656, 2742, 2832, 2928, 3029, 3126, 3210, 3273, 3312, 3332, 3345, 3366, 3408, 3473, 3560, 3668, 3795, 3939, 4102, 4282, 4473, 4666, 4854, 5035, 5210, 5382, 5558, 5741 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 18128, 18467, 18820, 19184, 19560, 19947, 20348, 20764, 21201, 21662, 22151, 22671, 23221, 23798, 24397, 25014, 25641, 26281, 26945, 27654, 28415, 29246, 30136, 31030, 31856, 32570, 33146, 33615, 34055, 34571, 35241, 36094, 37110, 38259, 39494, 40777, 42101, 43477, 44917, 46435, 48043, 49744, 51526, 53358, 55200, 57024, 58815, 60584, 62354, 64159, 66024, 67957, 69948, 71990, 74066, 76167, 78291, 80441, 82621, 84838, 87095 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 6077, 6240, 6412, 6593, 6782, 6980, 7186, 7401, 7626, 7860, 8105, 8361, 8629, 8908, 9200, 9505, 9823, 10154, 10502, 10868, 11252, 11657, 12083, 12530, 12997, 13486, 13996, 14527, 15082, 15661, 16268, 16901, 17560, 18241, 18942, 19660, 20392, 21138, 21897, 22667, 23446, 24237, 25037, 25839, 26635, 27418, 28186, 28944, 29702, 30479, 31285, 32126, 33001, 33905, 34835, 35786, 36757, 37752, 38773, 39825, 40909 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 4084, 4168, 4256, 4348, 4444, 4544, 4647, 4754, 4865, 4980, 5099, 5224, 5353, 5487, 5625, 5769, 5918, 6072, 6233, 6400, 6576, 6760, 6952, 7152, 7360, 7576, 7800, 8032, 8269, 8508, 8747, 8983, 9221, 9462, 9714, 9981, 10264, 10563, 10878, 11206, 11546, 11898, 12264, 12644, 13040, 13453, 13883, 14329, 14790, 15263, 15745, 16236, 16736, 17245, 17763, 18290, 18826, 19371, 19927, 20496, 21080 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2881, 2930, 2984, 3042, 3103, 3166, 3232, 3301, 3372, 3447, 3525, 3607, 3694, 3784, 3877, 3974, 4074, 4177, 4286, 4403, 4530, 4666, 4812, 4967, 5130, 5300, 5479, 5668, 5862, 6053, 6237, 6404, 6559, 6731, 6958, 7265, 7668, 8150, 8655, 9105, 9447, 9658, 9759, 9801, 9852, 9964, 10153, 10404, 10700, 11013, 11321, 11623, 11927, 12239, 12569, 12925, 13308, 13714, 14138, 14573, 15014 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 493, 506, 521, 537, 554, 571, 588, 605, 623, 641, 660, 679, 698, 717, 736, 753, 770, 785, 799, 813, 826, 840, 852, 865, 878, 892, 907, 922, 938, 953, 966, 978, 989, 999, 1008, 1016, 1023, 1030, 1037, 1046, 1056, 1068, 1083, 1098, 1114, 1129, 1142, 1155, 1166, 1176, 1185, 1193, 1199, 1204, 1209, 1213, 1217, 1220, 1223, 1227, 1231 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 15, 16, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 36, 37, 39, 40, 42, 44, 45, 47, 49, 51, 53, 55, 58, 61, 64, 67, 71, 75, 79, 83, 87, 92, 98, 104, 110, 116, 122, 128, 133, 138, 144, 149, 154, 159, 164, 170, 175, 181, 186, 192, 198, 204 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 6442, 6536, 6636, 6742, 6854, 6972, 7095, 7225, 7359, 7500, 7647, 7800, 7960, 8125, 8297, 8474, 8657, 8847, 9043, 9245, 9453, 9666, 9883, 10110, 10354, 10620, 10908, 11213, 11527, 11840, 12142, 12439, 12729, 12993, 13201, 13339, 13391, 13375, 13349, 13395, 13568, 13894, 14350, 14893, 15453, 15982, 16463, 16915, 17351, 17798, 18276, 18786, 19320, 19873, 20439, 21010, 21587, 22171, 22763, 23361, 23967 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 248, 259, 268, 277, 284, 292, 300, 308, 317, 326, 336, 345, 355, 366, 378, 391, 405, 421, 437, 451, 462, 470, 475, 479, 482, 485, 488, 492, 497, 503, 509, 517, 527, 537, 548, 559, 569, 579, 589, 599, 611, 622, 635, 648, 661, 674, 686, 699, 712, 724, 736, 748, 759, 770, 780, 791, 802, 813, 823, 834, 845 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2186, 2251, 2313, 2378, 2449, 2526, 2608, 2694, 2780, 2861, 2933, 2996, 3051, 3103, 3162, 3233, 3319, 3418, 3527, 3641, 3755, 3868, 3984, 4102, 4227, 4359, 4500, 4648, 4804, 4969, 5141, 5314, 5485, 5667, 5874, 6113, 6406, 6741, 7046, 7224, 7215, 6974, 6545, 6066, 5728, 5664, 5930, 6471, 7170, 7853, 8396, 8760, 8988, 9126, 9254, 9429, 9661, 9928, 10223, 10530, 10837 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 55, 56, 58, 59, 61, 62, 63, 65, 66, 67, 67, 68, 69, 69, 69, 69, 69, 69, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 83, 84, 86, 87, 88, 89, 90, 91, 91 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2264, 2308, 2352, 2397, 2444, 2492, 2541, 2592, 2645, 2700, 2756, 2815, 2875, 2937, 3002, 3070, 3144, 3227, 3311, 3385, 3445, 3478, 3490, 3527, 3645, 3881, 4260, 4754, 5289, 5759, 6090, 6252, 6272, 6200, 6113, 6068, 6083, 6139, 6217, 6285, 6322, 6320, 6294, 6269, 6279, 6346, 6481, 6673, 6905, 7149, 7385, 7609, 7826, 8038, 8250, 8467, 8688, 8911, 9140, 9381, 9636 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2583, 2601, 2625, 2652, 2685, 2721, 2761, 2805, 2852, 2902, 2955, 3011, 3070, 3132, 3196, 3264, 3334, 3408, 3484, 3564, 3647, 3734, 3824, 3918, 4016, 4118, 4223, 4330, 4443, 4566, 4702, 4850, 5008, 5166, 5315, 5446, 5562, 5663, 5739, 5775, 5764, 5698, 5589, 5475, 5411, 5434, 5561, 5779, 6061, 6362, 6653, 6924, 7187, 7450, 7730, 8039, 8377, 8737, 9118, 9521, 9941 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 5158, 5309, 5456, 5601, 5748, 5899, 6056, 6221, 6396, 6585, 6788, 7007, 7240, 7487, 7746, 8014, 8293, 8581, 8873, 9163, 9446, 9720, 9988, 10257, 10534, 10827, 11140, 11471, 11818, 12179, 12550, 12931, 13324, 13738, 14182, 14661, 15181, 15736, 16320, 16923, 17535, 18156, 18788, 19430, 20081, 20741, 21408, 22085, 22780, 23508, 24276, 25088, 25943, 26838, 27767, 28725, 29711, 30729, 31779, 32864, 33987 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7650, 7847, 8056, 8275, 8503, 8741, 8988, 9244, 9511, 9787, 10074, 10373, 10684, 11005, 11339, 11683, 12038, 12405, 12787, 13186, 13605, 14045, 14505, 14983, 15475, 15978, 16492, 17017, 17556, 18112, 18687, 19282, 19898, 20533, 21184, 21850, 22528, 23218, 23933, 24686, 25485, 26337, 27236, 28157, 29067, 29944, 30780, 31586, 32378, 33183, 34021, 34895, 35806, 36761, 37765, 38824, 39942, 41120, 42354, 43640, 44973 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2372, 2429, 2489, 2552, 2618, 2687, 2760, 2835, 2913, 2996, 3083, 3174, 3269, 3369, 3473, 3581, 3692, 3808, 3929, 4057, 4191, 4333, 4483, 4638, 4799, 4964, 5132, 5304, 5480, 5661, 5847, 6039, 6235, 6435, 6637, 6838, 7041, 7244, 7446, 7647, 7845, 8038, 8229, 8423, 8625, 8841, 9073, 9320, 9577, 9839, 10101, 10362, 10625, 10895, 11175, 11470, 11782, 12110, 12457, 12825, 13217 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2747, 2830, 2918, 3010, 3105, 3204, 3305, 3411, 3520, 3634, 3752, 3877, 4006, 4141, 4280, 4422, 4568, 4719, 4874, 5036, 5206, 5385, 5573, 5768, 5968, 6170, 6374, 6581, 6797, 7031, 7289, 7572, 7877, 8198, 8528, 8860, 9194, 9527, 9854, 10167, 10462, 10733, 10981, 11211, 11429, 11639, 11846, 12046, 12230, 12385, 12504, 12587, 12641, 12673, 12693, 12711, 12724, 12740, 12784, 12889, 13077 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 4148, 4220, 4297, 4378, 4460, 4543, 4626, 4709, 4793, 4878, 4966, 5057, 5150, 5245, 5340, 5434, 5527, 5620, 5715, 5817, 5928, 6049, 6181, 6323, 6475, 6638, 6809, 6990, 7184, 7399, 7637, 7902, 8190, 8490, 8785, 9064, 9321, 9561, 9798, 10051, 10334, 10653, 11003, 11372, 11743, 12105, 12452, 12791, 13138, 13511, 13925, 14385, 14887, 15421, 15977, 16544, 17122, 17713, 18314, 18927, 19549 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 4466, 4544, 4623, 4705, 4788, 4874, 4963, 5055, 5152, 5254, 5361, 5475, 5594, 5719, 5850, 5988, 6131, 6281, 6437, 6600, 6771, 6949, 7134, 7328, 7530, 7740, 7960, 8188, 8426, 8674, 8932, 9201, 9481, 9771, 10071, 10381, 10701, 11032, 11370, 11717, 12070, 12430, 12797, 13169, 13547, 13930, 14317, 14709, 15108, 15514, 15928, 16350, 16782, 17223, 17675, 18138, 18612, 19098, 19595, 20104, 20624 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1327, 1340, 1353, 1368, 1383, 1399, 1417, 1436, 1457, 1479, 1504, 1529, 1557, 1586, 1617, 1649, 1683, 1719, 1755, 1792, 1829, 1865, 1901, 1937, 1976, 2017, 2062, 2109, 2159, 2214, 2274, 2340, 2411, 2484, 2556, 2623, 2684, 2741, 2795, 2852, 2913, 2980, 3051, 3125, 3201, 3276, 3350, 3425, 3498, 3570, 3638, 3704, 3767, 3830, 3894, 3961, 4032, 4107, 4185, 4266, 4350 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2502, 2544, 2589, 2637, 2686, 2736, 2787, 2839, 2892, 2946, 3003, 3061, 3122, 3185, 3248, 3311, 3374, 3436, 3501, 3570, 3645, 3727, 3816, 3909, 4001, 4089, 4173, 4255, 4336, 4421, 4513, 4611, 4716, 4830, 4955, 5092, 5243, 5407, 5582, 5765, 5952, 6143, 6339, 6542, 6756, 6980, 7216, 7463, 7724, 8003, 8301, 8621, 8960, 9311, 9665, 10014, 10357, 10694, 11031, 11371, 11721 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 808, 824, 842, 860, 879, 899, 920, 942, 964, 988, 1014, 1040, 1068, 1096, 1127, 1158, 1190, 1224, 1259, 1296, 1335, 1376, 1419, 1463, 1508, 1554, 1600, 1647, 1695, 1745, 1796, 1850, 1905, 1962, 2020, 2079, 2138, 2198, 2259, 2320, 2383, 2447, 2512, 2578, 2648, 2721, 2798, 2878, 2961, 3044, 3126, 3206, 3284, 3363, 3449, 3543, 3647, 3759, 3876, 3995, 4112 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 12184, 12429, 12681, 12944, 13223, 13518, 13830, 14161, 14509, 14872, 15248, 15638, 16041, 16462, 16904, 17370, 17862, 18378, 18913, 19459, 20010, 20563, 21121, 21691, 22283, 22902, 23555, 24238, 24941, 25651, 26357, 27060, 27768, 28491, 29244, 30040, 30872, 31741, 32679, 33728, 34911, 36253, 37731, 39257, 40712, 42013, 43123, 44078, 44961, 45889, 46949, 48167, 49517, 50972, 52487, 54028, 55591, 57188, 58819, 60486, 62191 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 226, 230, 233, 235, 236, 238, 240, 243, 246, 249, 252, 255, 258, 261, 265, 269, 275, 282, 289, 292, 291, 285, 275, 262, 250, 238, 229, 220, 215, 215, 221, 233, 251, 272, 294, 313, 328, 341, 352, 362, 374, 386, 400, 413, 428, 442, 456, 471, 487, 502, 518, 535, 551, 569, 586, 604, 622, 640, 658, 677, 696 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 473, 476, 478, 479, 481, 482, 485, 487, 491, 494, 499, 504, 509, 516, 523, 532, 542, 553, 565, 577, 589, 601, 612, 623, 635, 648, 662, 677, 693, 709, 726, 745, 764, 784, 804, 826, 849, 872, 896, 921, 947, 973, 999, 1026, 1053, 1080, 1109, 1137, 1167, 1196, 1226, 1255, 1285, 1316, 1347, 1379, 1413, 1447, 1483, 1519, 1556 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 60, 59, 59, 58, 58, 59, 60, 61, 62, 63, 64, 65, 64, 64, 64, 65, 66, 68, 70, 72, 74, 76, 78, 79, 81, 83, 85, 87, 90, 93, 95, 97, 99, 101, 102, 104, 107, 109, 112, 115, 117, 120, 123, 126, 128, 130, 132, 134, 136, 137, 139, 142, 144, 147, 151, 155, 159, 163, 168, 173, 178 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 8872, 9059, 9253, 9459, 9680, 9917, 10170, 10436, 10713, 10995, 11278, 11561, 11845, 12136, 12443, 12771, 13123, 13497, 13887, 14287, 14691, 15098, 15512, 15936, 16375, 16834, 17311, 17809, 18331, 18885, 19475, 20104, 20767, 21453, 22150, 22847, 23539, 24226, 24905, 25577, 26240, 26894, 27535, 28158, 28753, 29315, 29845, 30345, 30820, 31276, 31719, 32150, 32573, 33003, 33461, 33961, 34507, 35097, 35725, 36383, 37063 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 21514, 22020, 22562, 23138, 23747, 24387, 25057, 25756, 26480, 27228, 27998, 28786, 29591, 30410, 31242, 32084, 32937, 33799, 34660, 35511, 36342, 37152, 37945, 38734, 39534, 40359, 41213, 42094, 43006, 43951, 44932, 45946, 46991, 48072, 49190, 50347, 51545, 52777, 54011, 55207, 56337, 57388, 58371, 59308, 60232, 61168, 62124, 63094, 64084, 65098, 66137, 67204, 68303, 69432, 70591, 71778, 72991, 74230, 75492, 76775, 78076 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1113, 1129, 1148, 1171, 1198, 1228, 1261, 1298, 1338, 1382, 1428, 1479, 1532, 1589, 1649, 1712, 1778, 1847, 1920, 1996, 2076, 2160, 2247, 2339, 2434, 2532, 2633, 2736, 2844, 2957, 3078, 3207, 3342, 3480, 3613, 3739, 3855, 3962, 4063, 4161, 4260, 4360, 4459, 4558, 4654, 4748, 4837, 4924, 5009, 5093, 5176, 5259, 5340, 5423, 5507, 5594, 5686, 5782, 5877, 5964, 6041 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 8986, 9251, 9535, 9839, 10162, 10503, 10857, 11222, 11592, 11962, 12329, 12687, 13039, 13387, 13737, 14092, 14455, 14822, 15192, 15558, 15916, 16267, 16612, 16958, 17314, 17685, 18074, 18479, 18901, 19341, 19799, 20275, 20768, 21271, 21776, 22278, 22772, 23260, 23740, 24212, 24675, 25128, 25570, 26000, 26421, 26833, 27237, 27632, 28014, 28374, 28710, 29021, 29311, 29587, 29856, 30125, 30395, 30667, 30955, 31277, 31642 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 5734, 5884, 6039, 6200, 6368, 6543, 6724, 6913, 7109, 7314, 7527, 7750, 7982, 8224, 8476, 8739, 9013, 9300, 9598, 9909, 10233, 10569, 10918, 11284, 11669, 12076, 12506, 12958, 13430, 13917, 14418, 14935, 15469, 16013, 16557, 17098, 17623, 18140, 18682, 19295, 20009, 20841, 21772, 22745, 23683, 24530, 25263, 25904, 26491, 27085, 27730, 28435, 29186, 29974, 30779, 31586, 32398, 33218, 34040, 34853, 35652 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3099, 3175, 3252, 3330, 3409, 3488, 3568, 3650, 3734, 3822, 3915, 4013, 4116, 4222, 4330, 4438, 4546, 4655, 4764, 4873, 4983, 5092, 5202, 5316, 5434, 5561, 5696, 5839, 5989, 6146, 6308, 6475, 6647, 6823, 7004, 7189, 7377, 7567, 7758, 7948, 8135, 8319, 8499, 8672, 8834, 8983, 9117, 9237, 9347, 9451, 9553, 9652, 9750, 9847, 9947, 10051, 10160, 10274, 10391, 10511, 10632 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 14, 16, 18, 19, 20, 21, 23, 25, 27, 30, 33, 36, 39, 42, 46, 51, 57, 63, 69, 74, 77, 76, 73, 70, 70, 75, 86, 101, 119, 137, 151, 161, 168, 173, 177, 182, 189, 195, 203, 210, 217, 224, 231, 238, 246, 253, 261, 268, 278, 290, 306, 326, 351, 378, 404, 428, 448, 466, 482, 498, 515 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 413, 425, 437, 448, 459, 470, 480, 491, 501, 512, 524, 537, 550, 564, 580, 596, 613, 631, 651, 671, 693, 716, 740, 766, 793, 823, 855, 889, 924, 961, 998, 1034, 1071, 1108, 1146, 1185, 1224, 1263, 1303, 1343, 1384, 1425, 1465, 1505, 1545, 1583, 1621, 1657, 1692, 1725, 1755, 1783, 1809, 1833, 1855, 1876, 1896, 1915, 1934, 1952, 1969 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 734, 744, 755, 766, 777, 788, 799, 811, 824, 837, 851, 866, 882, 898, 915, 933, 952, 971, 991, 1011, 1032, 1054, 1075, 1098, 1122, 1149, 1178, 1209, 1241, 1274, 1307, 1341, 1374, 1407, 1438, 1468, 1495, 1520, 1545, 1570, 1598, 1628, 1660, 1693, 1725, 1754, 1779, 1802, 1822, 1840, 1856, 1872, 1885, 1899, 1912, 1926, 1940, 1956, 1972, 1990, 2009 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 485, 495, 505, 515, 526, 538, 549, 562, 575, 588, 603, 617, 633, 649, 665, 683, 700, 719, 738, 758, 780, 804, 830, 856, 882, 906, 928, 950, 971, 991, 1013, 1034, 1057, 1082, 1112, 1149, 1195, 1247, 1304, 1361, 1415, 1466, 1514, 1559, 1606, 1654, 1705, 1758, 1810, 1857, 1898, 1931, 1958, 1981, 2003, 2027, 2053, 2081, 2111, 2143, 2179 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 13683, 13994, 14322, 14665, 15020, 15385, 15760, 16146, 16546, 16962, 17396, 17850, 18322, 18810, 19308, 19814, 20325, 20844, 21375, 21926, 22503, 23107, 23736, 24385, 25041, 25699, 26354, 27010, 27674, 28361, 29077, 29829, 30611, 31410, 32205, 32983, 33733, 34463, 35195, 35965, 36793, 37694, 38650, 39623, 40562, 41427, 42204, 42907, 43558, 44196, 44846, 45513, 46188, 46869, 47553, 48235, 48919, 49603, 50267, 50890, 51452 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 273, 279, 285, 292, 300, 307, 315, 324, 332, 341, 349, 358, 366, 374, 383, 392, 401, 411, 422, 434, 446, 459, 472, 487, 502, 517, 533, 550, 568, 585, 603, 621, 639, 658, 680, 705, 735, 767, 801, 834, 863, 887, 908, 926, 944, 963, 985, 1007, 1029, 1048, 1064, 1075, 1082, 1088, 1095, 1105, 1118, 1135, 1154, 1174, 1193 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2255, 2258, 2264, 2274, 2287, 2304, 2323, 2346, 2371, 2400, 2432, 2466, 2503, 2543, 2586, 2632, 2681, 2733, 2789, 2847, 2908, 2972, 3039, 3110, 3185, 3263, 3346, 3432, 3523, 3619, 3718, 3822, 3931, 4045, 4164, 4287, 4414, 4546, 4685, 4836, 5001, 5183, 5378, 5582, 5787, 5986, 6176, 6361, 6546, 6740, 6949, 7175, 7415, 7666, 7923, 8182, 8444, 8707, 8973, 9241, 9510 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 4284, 4324, 4367, 4413, 4463, 4517, 4575, 4636, 4699, 4764, 4829, 4895, 4960, 5028, 5099, 5175, 5256, 5343, 5434, 5528, 5625, 5723, 5825, 5930, 6040, 6155, 6274, 6399, 6531, 6672, 6823, 6985, 7158, 7341, 7531, 7728, 7931, 8140, 8356, 8580, 8811, 9050, 9297, 9552, 9817, 10090, 10373, 10665, 10968, 11282, 11608, 11946, 12296, 12659, 13034, 13422, 13822, 14235, 14660, 15095, 15540 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 178, 182, 186, 189, 193, 195, 198, 201, 204, 208, 212, 217, 223, 229, 235, 242, 248, 254, 261, 268, 275, 284, 293, 302, 309, 312, 313, 310, 305, 302, 302, 304, 310, 317, 325, 331, 336, 339, 342, 346, 352, 360, 369, 379, 390, 399, 409, 418, 426, 434, 442, 451, 459, 467, 474, 479, 482, 484, 485, 486, 488 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2630, 2693, 2758, 2828, 2901, 2979, 3063, 3153, 3251, 3358, 3475, 3602, 3741, 3890, 4050, 4220, 4400, 4591, 4794, 5011, 5242, 5488, 5748, 6021, 6308, 6606, 6916, 7237, 7569, 7912, 8266, 8630, 9005, 9386, 9772, 10158, 10544, 10929, 11316, 11711, 12116, 12530, 12951, 13375, 13799, 14217, 14632, 15042, 15436, 15802, 16131, 16420, 16675, 16910, 17144, 17394, 17662, 17949, 18260, 18601, 18977 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 271, 273, 277, 284, 293, 304, 317, 331, 344, 357, 368, 377, 384, 389, 395, 401, 408, 416, 426, 436, 447, 460, 475, 490, 506, 521, 536, 552, 568, 585, 604, 625, 648, 673, 701, 732, 767, 804, 843, 881, 917, 949, 980, 1008, 1037, 1066, 1096, 1127, 1159, 1193, 1229, 1267, 1307, 1349, 1392, 1437, 1482, 1529, 1578, 1628, 1681 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 4981, 5068, 5191, 5339, 5504, 5681, 5864, 6052, 6246, 6446, 6653, 6867, 7086, 7304, 7514, 7711, 7891, 8058, 8221, 8398, 8597, 8827, 9084, 9350, 9604, 9832, 10024, 10190, 10355, 10551, 10802, 11118, 11489, 11896, 12312, 12717, 13105, 13481, 13853, 14233, 14629, 15043, 15472, 15907, 16339, 16761, 17169, 17568, 17969, 18384, 18825, 19293, 19786, 20302, 20836, 21384, 21948, 22526, 23110, 23692, 24263 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3094, 3142, 3186, 3228, 3271, 3316, 3364, 3414, 3467, 3521, 3577, 3633, 3690, 3748, 3810, 3875, 3945, 4018, 4090, 4155, 4209, 4252, 4286, 4311, 4332, 4350, 4367, 4383, 4405, 4441, 4495, 4573, 4674, 4793, 4926, 5067, 5212, 5363, 5536, 5751, 6020, 6352, 6734, 7136, 7514, 7837, 8095, 8296, 8457, 8601, 8746, 8895, 9046, 9205, 9380, 9576, 9799, 10047, 10315, 10593, 10876 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 518, 533, 547, 562, 576, 589, 601, 611, 621, 629, 636, 642, 648, 652, 656, 659, 662, 664, 667, 673, 683, 699, 719, 741, 762, 778, 789, 797, 802, 808, 818, 832, 849, 869, 890, 910, 931, 952, 973, 995, 1017, 1041, 1065, 1089, 1114, 1140, 1165, 1192, 1218, 1246, 1273, 1302, 1331, 1361, 1391, 1422, 1453, 1484, 1517, 1551, 1587 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 930, 943, 958, 974, 991, 1010, 1030, 1051, 1073, 1096, 1120, 1145, 1170, 1197, 1224, 1253, 1283, 1315, 1348, 1383, 1420, 1458, 1497, 1539, 1583, 1629, 1676, 1724, 1775, 1831, 1893, 1962, 2036, 2108, 2164, 2197, 2207, 2196, 2170, 2137, 2103, 2066, 2029, 2006, 2019, 2080, 2198, 2365, 2558, 2742, 2892, 2999, 3071, 3124, 3185, 3270, 3385, 3522, 3673, 3821, 3958 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 4638, 4673, 4711, 4753, 4797, 4844, 4893, 4943, 4994, 5046, 5099, 5152, 5205, 5260, 5316, 5374, 5435, 5499, 5566, 5638, 5716, 5801, 5893, 5990, 6090, 6191, 6293, 6396, 6503, 6615, 6735, 6866, 7004, 7146, 7281, 7405, 7515, 7614, 7713, 7826, 7964, 8130, 8323, 8535, 8759, 8989, 9222, 9462, 9712, 9977, 10261, 10563, 10883, 11220, 11573, 11941, 12326, 12726, 13138, 13559, 13986 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 660, 676, 692, 709, 728, 747, 767, 789, 811, 834, 858, 883, 909, 936, 964, 992, 1022, 1052, 1084, 1116, 1149, 1183, 1218, 1254, 1291, 1329, 1368, 1408, 1449, 1491, 1534, 1579, 1624, 1671, 1719, 1767, 1816, 1866, 1917, 1969, 2024, 2081, 2141, 2203, 2267, 2334, 2404, 2476, 2550, 2628, 2708, 2791, 2877, 2966, 3055, 3146, 3238, 3330, 3423, 3516, 3609 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2560, 2633, 2707, 2781, 2855, 2930, 3007, 3085, 3165, 3249, 3337, 3429, 3526, 3626, 3730, 3836, 3946, 4058, 4173, 4291, 4413, 4537, 4665, 4796, 4931, 5071, 5215, 5364, 5517, 5674, 5834, 5999, 6168, 6342, 6521, 6705, 6896, 7093, 7300, 7520, 7754, 8004, 8270, 8553, 8852, 9167, 9500, 9850, 10216, 10596, 10990, 11396, 11817, 12254, 12709, 13184, 13680, 14197, 14738, 15303, 15894 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 37860, 38431, 39050, 39708, 40400, 41122, 41874, 42656, 43470, 44321, 45212, 46144, 47118, 48128, 49170, 50239, 51336, 52469, 53641, 54859, 56132, 57454, 58829, 60285, 61857, 63566, 65427, 67425, 69512, 71619, 73698, 75730, 77730, 79729, 81775, 83902, 86118, 88413, 90774, 93180, 95617, 98085, 100592, 103145, 105753, 108425, 111166, 113979, 116867, 119832, 122877, 126005, 129225, 132550, 135999, 139586, 143315, 147187, 151208, 155381, 159708 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2477, 2530, 2587, 2648, 2713, 2782, 2855, 2931, 3010, 3093, 3178, 3266, 3357, 3451, 3548, 3649, 3754, 3863, 3976, 4094, 4218, 4349, 4486, 4626, 4765, 4901, 5032, 5161, 5290, 5425, 5569, 5724, 5888, 6063, 6246, 6438, 6638, 6846, 7062, 7285, 7514, 7750, 7991, 8235, 8476, 8712, 8940, 9164, 9388, 9619, 9862, 10119, 10390, 10674, 10968, 11271, 11583, 11905, 12239, 12587, 12951 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1944, 1960, 1977, 1995, 2015, 2036, 2058, 2082, 2107, 2133, 2160, 2189, 2219, 2252, 2285, 2321, 2358, 2398, 2439, 2484, 2532, 2583, 2638, 2696, 2757, 2821, 2888, 2958, 3030, 3104, 3180, 3256, 3331, 3408, 3492, 3584, 3688, 3801, 3908, 3993, 4043, 4053, 4032, 3991, 3952, 3927, 3920, 3928, 3962, 4030, 4140, 4296, 4493, 4713, 4928, 5120, 5281, 5416, 5532, 5641, 5752 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1395, 1425, 1442, 1452, 1462, 1474, 1491, 1512, 1536, 1560, 1581, 1598, 1613, 1632, 1662, 1709, 1774, 1855, 1946, 2035, 2116, 2186, 2248, 2303, 2357, 2410, 2464, 2519, 2576, 2643, 2721, 2812, 2915, 3026, 3140, 3253, 3364, 3473, 3580, 3685, 3788, 3888, 3985, 4082, 4181, 4284, 4392, 4504, 4621, 4741, 4865, 4992, 5124, 5259, 5398, 5540, 5686, 5835, 5987, 6144, 6306 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 543776, 558819, 571165, 581812, 591558, 600995, 610508, 620279, 630314, 640489, 650680, 660909, 671462, 682947, 696140, 711547, 729377, 749329, 770744, 792677, 814378, 835717, 856715, 876960, 896005, 913570, 929457, 943824, 957214, 970408, 984016, 998075, 1012534, 1027788, 1044293, 1062299, 1082028, 1103202, 1124928, 1145976, 1165429, 1183008, 1198875, 1213104, 1225922, 1237531, 1247897, 1257022, 1265223, 1272915, 1280429, 1287890, 1295322, 1302810, 1310414, 1318177, 1326146, 1334344, 1342733, 1351248, 1359821 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1974, 2036, 2134, 2249, 2371, 2490, 2604, 2713, 2823, 2942, 3076, 3227, 3392, 3554, 3695, 3802, 3868, 3902, 3915, 3929, 3958, 4006, 4068, 4148, 4244, 4355, 4486, 4633, 4787, 4930, 5054, 5152, 5229, 5291, 5350, 5415, 5487, 5565, 5645, 5723, 5794, 5856, 5911, 5969, 6044, 6144, 6275, 6431, 6592, 6733, 6835, 6893, 6912, 6907, 6897, 6897, 6911, 6935, 6968, 7007, 7050 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 196, 196, 194, 190, 186, 181, 177, 173, 171, 170, 171, 175, 181, 189, 198, 207, 217, 227, 237, 245, 251, 254, 254, 253, 251, 248, 246, 244, 242, 243, 246, 252, 261, 272, 284, 296, 309, 323, 336, 348, 360, 369, 378, 385, 392, 398, 405, 412, 419, 425, 432, 438, 444, 451, 459, 468, 480, 493, 508, 522, 535 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 10549, 10248, 10049, 9957, 9972, 10087, 10286, 10547, 10844, 11145, 11424, 11666, 11872, 12065, 12282, 12548, 12865, 13222, 13609, 14009, 14410, 14812, 15215, 15603, 15960, 16275, 16539, 16759, 16954, 17151, 17372, 17623, 17899, 18192, 18488, 18778, 19059, 19335, 19611, 19895, 20194, 20510, 20838, 21166, 21479, 21764, 22017, 22241, 22445, 22642, 22840, 23043, 23248, 23449, 23639, 23813, 23970, 24112, 24244, 24372, 24501 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 82199, 83794, 85175, 86378, 87439, 88390, 89262, 90085, 90883, 91682, 92501, 93357, 94264, 95228, 96253, 97342, 98495, 99711, 100989, 102324, 103708, 105143, 106617, 108086, 109495, 110805, 111993, 113068, 114055, 114993, 115912, 116822, 117709, 118552, 119319, 119989, 120551, 121022, 121433, 121831, 122249, 122703, 123180, 123659, 124102, 124483, 124795, 125049, 125267, 125481, 125715, 125974, 126249, 126524, 126773, 126979, 127136, 127249, 127319, 127353, 127353 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 780, 794, 808, 823, 839, 855, 872, 890, 910, 931, 956, 982, 1011, 1042, 1075, 1107, 1140, 1173, 1207, 1242, 1279, 1317, 1357, 1397, 1438, 1480, 1521, 1562, 1604, 1646, 1690, 1733, 1778, 1823, 1871, 1922, 1976, 2033, 2090, 2141, 2184, 2218, 2244, 2263, 2281, 2298, 2317, 2336, 2356, 2376, 2397, 2420, 2443, 2469, 2496, 2527, 2559, 2595, 2633, 2672, 2713 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 19211, 19305, 19567, 19979, 20521, 21169, 21898, 22681, 23490, 24296, 25074, 25809, 26495, 27143, 27771, 28393, 29006, 29607, 30204, 30812, 31437, 32088, 32759, 33435, 34092, 34713, 35291, 35832, 36356, 36890, 37451, 38046, 38666, 39295, 39913, 40502, 41059, 41586, 42082, 42544, 42972, 43364, 43721, 44049, 44357, 44653, 44941, 45221, 45489, 45742, 45977, 46193, 46394, 46592, 46801, 47033, 47291, 47573, 47868, 48165, 48454 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7562, 7807, 8054, 8307, 8573, 8853, 9149, 9462, 9791, 10136, 10493, 10862, 11242, 11634, 12038, 12454, 12884, 13325, 13762, 14178, 14559, 14899, 15203, 15486, 15773, 16080, 16412, 16762, 17121, 17474, 17810, 18127, 18429, 18712, 18978, 19226, 19453, 19662, 19856, 20045, 20232, 20422, 20612, 20800, 20982, 21156, 21319, 21474, 21625, 21778, 21935, 22101, 22271, 22438, 22593, 22728, 22840, 22933, 23010, 23080, 23146 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 6703, 6723, 6851, 7065, 7349, 7684, 8057, 8456, 8870, 9292, 9714, 10130, 10532, 10914, 11267, 11589, 11873, 12121, 12341, 12550, 12757, 12967, 13177, 13382, 13577, 13757, 13920, 14071, 14215, 14362, 14519, 14684, 14854, 15030, 15214, 15403, 15601, 15802, 15983, 16113, 16172, 16155, 16070, 15930, 15751, 15550, 15326, 15086, 14858, 14680, 14576, 14559, 14623, 14748, 14902, 15064, 15227, 15396, 15568, 15744, 15921 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1740, 1763, 1792, 1825, 1862, 1902, 1947, 1995, 2048, 2107, 2173, 2245, 2324, 2406, 2490, 2573, 2655, 2736, 2814, 2891, 2964, 3035, 3104, 3170, 3235, 3299, 3363, 3427, 3491, 3558, 3627, 3700, 3776, 3854, 3933, 4013, 4096, 4179, 4260, 4333, 4395, 4442, 4476, 4507, 4543, 4592, 4659, 4739, 4824, 4899, 4955, 4988, 5003, 5009, 5019, 5042, 5082, 5134, 5197, 5265, 5334 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1532, 1576, 1625, 1674, 1724, 1775, 1825, 1878, 1934, 1996, 2064, 2140, 2224, 2312, 2402, 2490, 2575, 2659, 2743, 2830, 2920, 3014, 3112, 3212, 3313, 3413, 3511, 3609, 3708, 3810, 3918, 4030, 4147, 4270, 4401, 4541, 4691, 4849, 5009, 5160, 5297, 5418, 5523, 5617, 5703, 5784, 5862, 5937, 6013, 6095, 6186, 6289, 6404, 6530, 6664, 6806, 6955, 7111, 7275, 7447, 7627 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1211, 1228, 1253, 1283, 1317, 1356, 1397, 1442, 1489, 1540, 1594, 1650, 1709, 1769, 1830, 1890, 1949, 2008, 2067, 2127, 2188, 2252, 2318, 2385, 2453, 2520, 2587, 2655, 2723, 2792, 2861, 2931, 3003, 3076, 3151, 3229, 3310, 3393, 3479, 3571, 3668, 3772, 3882, 3992, 4096, 4188, 4268, 4336, 4395, 4449, 4501, 4552, 4600, 4648, 4697, 4748, 4802, 4858, 4918, 4979, 5042 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 6314, 6461, 6634, 6827, 7035, 7256, 7488, 7732, 7991, 8265, 8559, 8871, 9201, 9543, 9889, 10234, 10575, 10913, 11255, 11606, 11973, 12356, 12754, 13161, 13572, 13981, 14387, 14791, 15197, 15608, 16027, 16454, 16889, 17331, 17779, 18231, 18686, 19144, 19607, 20077, 20555, 21042, 21534, 22023, 22498, 22951, 23381, 23790, 24171, 24518, 24829, 25099, 25334, 25554, 25784, 26044, 26341, 26669, 27023, 27393, 27769 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7451, 7547, 7651, 7763, 7882, 8010, 8146, 8290, 8443, 8604, 8774, 8954, 9142, 9340, 9547, 9765, 9990, 10222, 10466, 10729, 11016, 11323, 11644, 11966, 12274, 12552, 12807, 13034, 13200, 13257, 13180, 12964, 12634, 12242, 11854, 11529, 11262, 11063, 11013, 11215, 11731, 12612, 13812, 15175, 16485, 17586, 18415, 19021, 19497, 19987, 20595, 21348, 22203, 23116, 24019, 24861, 25631, 26349, 27032, 27708, 28398 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 37895, 38976, 39992, 40994, 42024, 43109, 44266, 45497, 46797, 48149, 49537, 50954, 52403, 53909, 55503, 57200, 59030, 60967, 62909, 64720, 66309, 67628, 68730, 69751, 70883, 72265, 73945, 75880, 78012, 80242, 82498, 84764, 87061, 89400, 91804, 94288, 96852, 99477, 102133, 104779, 107386, 109935, 112431, 114898, 117369, 119870, 122401, 124945, 127479, 129967, 132383, 134730, 137006, 139186, 141235, 143135, 144869, 146457, 147970, 149503, 151125 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 177, 181, 186, 191, 195, 200, 205, 209, 214, 219, 224, 229, 235, 240, 246, 253, 259, 266, 274, 282, 292, 302, 313, 325, 337, 349, 362, 375, 388, 401, 413, 424, 435, 445, 456, 469, 484, 501, 517, 530, 536, 535, 528, 519, 512, 509, 513, 521, 534, 549, 564, 581, 598, 616, 634, 650, 666, 679, 692, 705, 717 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 376325, 382206, 388409, 394938, 401793, 408974, 416477, 424297, 432428, 440862, 449595, 458627, 467962, 477616, 487607, 497952, 508656, 519722, 531161, 542984, 555200, 567805, 580799, 594193, 608003, 622232, 636884, 651935, 667339, 683033, 698966, 715105, 731444, 747986, 764749, 781737, 798942, 816329, 833834, 851375, 868891, 886349, 903750, 921108, 938453, 955804, 973148, 990460, 1007747, 1025015, 1042262, 1059501, 1076706, 1093787, 1110626, 1127144, 1143289, 1159095, 1174662, 1190138, 1205625 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 17119, 17522, 17944, 18386, 18845, 19322, 19816, 20327, 20854, 21398, 21958, 22536, 23130, 23742, 24373, 25024, 25697, 26394, 27113, 27851, 28607, 29382, 30184, 31025, 31918, 32878, 33901, 34992, 36172, 37466, 38890, 40440, 42100, 43853, 45672, 47532, 49441, 51378, 53250, 54938, 56362, 57472, 58307, 58982, 59663, 60468, 61441, 62543, 63713, 64859, 65911, 66858, 67727, 68543, 69342, 70152, 70977, 71809, 72661, 73543, 74462 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 74, 74, 75, 76, 78, 79, 81, 83, 85, 87, 89, 91, 94, 96, 99, 101, 104, 106, 108, 111, 114, 118, 122, 126, 130, 134, 138, 142, 146, 150, 154, 159, 165, 171, 177, 184, 190, 197, 203, 210, 216, 222, 228, 234, 239, 245, 251, 256, 262, 267, 273, 278, 283, 288, 293, 298, 303, 308, 314, 320, 326 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 8140, 8271, 8401, 8531, 8664, 8800, 8939, 9083, 9232, 9386, 9545, 9710, 9882, 10061, 10248, 10444, 10649, 10864, 11088, 11320, 11559, 11806, 12061, 12323, 12593, 12871, 13156, 13450, 13752, 14063, 14385, 14718, 15063, 15417, 15778, 16144, 16513, 16888, 17274, 17680, 18111, 18569, 19051, 19552, 20065, 20587, 21115, 21647, 22175, 22690, 23184, 23655, 24103, 24526, 24922, 25292, 25634, 25950, 26249, 26545, 26846 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 37542, 38045, 38623, 39272, 39987, 40764, 41602, 42498, 43453, 44467, 45541, 46674, 47864, 49109, 50404, 51747, 53138, 54582, 56075, 57615, 59204, 60841, 62532, 64299, 66167, 68155, 70269, 72505, 74869, 77362, 79984, 82733, 85602, 88577, 91643, 94783, 97998, 101278, 104583, 107865, 111091, 114229, 117291, 120337, 123451, 126690, 130084, 133597, 137139, 140580, 143832, 146857, 149694, 152420, 155151, 157971, 160906, 163928, 167008, 170094, 173149 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 8076, 8201, 8339, 8489, 8653, 8832, 9024, 9229, 9444, 9667, 9895, 10128, 10365, 10607, 10857, 11116, 11384, 11659, 11938, 12215, 12485, 12747, 13001, 13251, 13501, 13755, 14012, 14272, 14532, 14786, 15033, 15270, 15499, 15723, 15947, 16175, 16408, 16643, 16878, 17106, 17324, 17533, 17733, 17921, 18091, 18242, 18368, 18474, 18576, 18695, 18846, 19037, 19261, 19502, 19738, 19951, 20138, 20302, 20452, 20602, 20759 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 48, 51, 54, 57, 60, 63, 67, 70, 74, 78, 82, 86, 90, 94, 98, 103, 107, 113, 118, 124, 130, 136, 142, 148, 154, 161, 167, 174, 180, 187, 193, 199, 205, 211, 217, 223, 229, 236, 243, 250, 257, 264, 272, 280, 287, 295, 303, 310, 317, 325, 332, 339, 346, 354, 361, 368, 375, 381, 388, 394, 401 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 4433, 4539, 4658, 4784, 4913, 5044, 5175, 5306, 5439, 5577, 5720, 5870, 6024, 6179, 6327, 6465, 6587, 6693, 6794, 6901, 7022, 7169, 7334, 7483, 7567, 7556, 7431, 7214, 6968, 6776, 6699, 6762, 6943, 7208, 7499, 7777, 8030, 8271, 8511, 8769, 9057, 9378, 9722, 10077, 10430, 10769, 11091, 11396, 11685, 11960, 12223, 12473, 12709, 12934, 13149, 13356, 13555, 13747, 13941, 14144, 14365 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 72592, 73642, 74822, 76136, 77583, 79159, 80857, 82671, 84589, 86600, 88693, 90860, 93101, 95421, 97829, 100330, 102925, 105606, 108364, 111188, 114067, 116996, 119974, 123002, 126081, 129210, 132385, 135601, 138858, 142156, 145494, 148872, 152281, 155698, 159098, 162459, 165772, 169039, 172265, 175461, 178633, 181786, 184917, 188019, 191086, 194113, 197098, 200050, 202991, 205947, 208939, 211970, 215038, 218146, 221294, 224481, 227710, 230973, 234243, 237487, 240676 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1683, 1723, 1764, 1805, 1847, 1890, 1934, 1979, 2025, 2072, 2120, 2169, 2220, 2272, 2325, 2381, 2437, 2494, 2554, 2617, 2685, 2759, 2837, 2915, 2986, 3047, 3094, 3130, 3163, 3201, 3251, 3316, 3393, 3482, 3577, 3678, 3782, 3891, 4005, 4123, 4245, 4370, 4498, 4626, 4751, 4871, 4987, 5097, 5201, 5298, 5388, 5470, 5545, 5619, 5699, 5791, 5896, 6013, 6139, 6268, 6396 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 6110, 6262, 6433, 6618, 6813, 7016, 7226, 7443, 7669, 7908, 8161, 8429, 8711, 8999, 9287, 9570, 9844, 10112, 10376, 10640, 10909, 11182, 11460, 11742, 12026, 12312, 12600, 12892, 13192, 13504, 13834, 14180, 14544, 14927, 15333, 15764, 16222, 16704, 17202, 17707, 18211, 18710, 19205, 19701, 20207, 20725, 21260, 21806, 22355, 22896, 23421, 23926, 24414, 24891, 25365, 25843, 26327, 26814, 27302, 27790, 28276 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 17527, 17850, 18182, 18529, 18895, 19282, 19690, 20118, 20562, 21019, 21486, 21962, 22447, 22947, 23471, 24024, 24607, 25218, 25853, 26504, 27166, 27837, 28517, 29210, 29917, 30641, 31379, 32131, 32896, 33677, 34475, 35289, 36115, 36942, 37756, 38546, 39308, 40042, 40753, 41445, 42123, 42782, 43422, 44053, 44686, 45330, 45992, 46664, 47321, 47926, 48453, 48894, 49261, 49577, 49875, 50181, 50500, 50829, 51174, 51540, 51931 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 18580, 19247, 19946, 20670, 21416, 22179, 22958, 23754, 24569, 25407, 26272, 27163, 28080, 29016, 29962, 30913, 31867, 32826, 33797, 34788, 35805, 36852, 37926, 39027, 40151, 41296, 42462, 43652, 44868, 46115, 47398, 48716, 50068, 51453, 52873, 54325, 55812, 57329, 58867, 60410, 61949, 63476, 64997, 66517, 68051, 69607, 71185, 72781, 74393, 76018, 77652, 79298, 80954, 82605, 84231, 85821, 87367, 88876, 90371, 91886, 93444 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1022, 1068, 1120, 1178, 1240, 1306, 1373, 1441, 1508, 1573, 1634, 1690, 1742, 1791, 1836, 1880, 1921, 1961, 1999, 2036, 2074, 2113, 2153, 2192, 2229, 2262, 2292, 2318, 2344, 2375, 2415, 2463, 2520, 2583, 2647, 2709, 2767, 2823, 2880, 2944, 3016, 3100, 3193, 3291, 3389, 3483, 3570, 3653, 3736, 3823, 3918, 4023, 4136, 4255, 4375, 4496, 4614, 4732, 4849, 4964, 5079 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 20607, 21170, 21755, 22362, 22994, 23652, 24336, 25048, 25789, 26560, 27362, 28195, 29059, 29951, 30871, 31816, 32784, 33774, 34786, 35821, 36879, 37959, 39058, 40162, 41258, 42333, 43382, 44408, 45412, 46398, 47369, 48320, 49247, 50165, 51090, 52032, 53003, 53993, 54957, 55833, 56583, 57184, 57661, 58070, 58491, 58984, 59562, 60207, 60903, 61623, 62343, 63069, 63798, 64488, 65087, 65559, 65884, 66077, 66185, 66277, 66402 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 433, 438, 444, 449, 455, 462, 468, 476, 483, 491, 500, 509, 518, 527, 537, 548, 558, 568, 579, 591, 604, 620, 638, 653, 663, 663, 652, 632, 609, 590, 581, 584, 597, 617, 639, 660, 678, 695, 712, 730, 751, 777, 805, 832, 854, 867, 869, 863, 853, 848, 854, 871, 899, 933, 967, 996, 1018, 1036, 1050, 1064, 1079 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 24949, 25512, 26133, 26811, 27545, 28332, 29169, 30051, 30972, 31928, 32912, 33921, 34951, 36002, 37074, 38166, 39279, 40408, 41543, 42671, 43783, 44875, 45953, 47022, 48093, 49175, 50269, 51376, 52508, 53678, 54897, 56169, 57490, 58852, 60245, 61658, 63085, 64522, 65970, 67433, 68910, 70403, 71899, 73363, 74748, 76020, 77167, 78199, 79141, 80028, 80888, 81729, 82548, 83353, 84151, 84948, 85748, 86553, 87369, 88200, 89047 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1354, 1383, 1420, 1463, 1511, 1564, 1619, 1678, 1739, 1802, 1867, 1934, 2002, 2070, 2138, 2205, 2269, 2333, 2395, 2456, 2518, 2581, 2643, 2706, 2766, 2826, 2883, 2938, 2992, 3045, 3096, 3146, 3193, 3239, 3288, 3339, 3397, 3457, 3510, 3543, 3545, 3512, 3449, 3370, 3290, 3223, 3173, 3138, 3113, 3094, 3076, 3060, 3047, 3036, 3026, 3015, 3003, 2990, 2977, 2968, 2963 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2896, 2965, 3045, 3134, 3228, 3328, 3432, 3540, 3653, 3772, 3898, 4030, 4168, 4307, 4446, 4580, 4708, 4832, 4951, 5066, 5178, 5287, 5393, 5496, 5596, 5694, 5789, 5882, 5975, 6069, 6164, 6262, 6362, 6465, 6569, 6674, 6780, 6886, 6994, 7104, 7217, 7333, 7451, 7567, 7675, 7771, 7852, 7922, 7984, 8048, 8118, 8195, 8280, 8370, 8465, 8563, 8665, 8770, 8878, 8986, 9095 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 116, 117, 120, 124, 128, 134, 139, 145, 151, 157, 163, 168, 173, 178, 183, 187, 192, 196, 201, 206, 213, 221, 230, 240, 252, 267, 284, 303, 324, 343, 360, 374, 386, 396, 407, 419, 433, 449, 465, 481, 496, 510, 523, 536, 549, 564, 580, 597, 618, 641, 668, 699, 733, 772, 821, 880, 951, 1032, 1116, 1192, 1252 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 494, 500, 507, 513, 521, 530, 540, 549, 559, 567, 573, 576, 578, 578, 579, 581, 585, 591, 598, 606, 614, 621, 628, 635, 642, 650, 658, 666, 673, 680, 685, 689, 692, 694, 698, 704, 712, 723, 736, 751, 767, 783, 801, 819, 837, 855, 873, 891, 908, 925, 943, 961, 980, 998, 1016, 1033, 1048, 1063, 1077, 1091, 1104 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3527, 3585, 3646, 3710, 3775, 3839, 3904, 3967, 4031, 4095, 4160, 4226, 4292, 4357, 4420, 4477, 4530, 4578, 4622, 4665, 4707, 4750, 4791, 4833, 4872, 4908, 4942, 4974, 5005, 5037, 5073, 5112, 5152, 5194, 5239, 5287, 5340, 5395, 5442, 5467, 5460, 5418, 5346, 5253, 5156, 5067, 4990, 4922, 4862, 4803, 4744, 4682, 4622, 4565, 4515, 4475, 4446, 4426, 4413, 4401, 4389 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 5719, 5902, 6065, 6216, 6360, 6503, 6647, 6795, 6951, 7116, 7290, 7475, 7674, 7889, 8122, 8376, 8651, 8947, 9261, 9586, 9918, 10256, 10600, 10951, 11312, 11685, 12068, 12461, 12860, 13258, 13653, 14045, 14436, 14823, 15203, 15576, 15941, 16302, 16673, 17074, 17518, 18010, 18547, 19124, 19732, 20363, 21017, 21694, 22387, 23091, 23801, 24517, 25238, 25960, 26674, 27377, 28064, 28741, 29430, 30163, 30962 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1258, 1354, 1451, 1546, 1636, 1719, 1796, 1869, 1939, 2012, 2090, 2174, 2264, 2356, 2443, 2523, 2592, 2653, 2711, 2775, 2850, 2937, 3034, 3137, 3240, 3337, 3428, 3514, 3594, 3671, 3745, 3815, 3884, 3950, 4016, 4083, 4149, 4216, 4291, 4383, 4499, 4642, 4807, 4986, 5164, 5332, 5486, 5630, 5764, 5891, 6014, 6130, 6239, 6349, 6468, 6604, 6759, 6930, 7107, 7274, 7420 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 449, 503, 542, 575, 608, 646, 690, 739, 792, 843, 889, 928, 963, 1001, 1051, 1120, 1211, 1320, 1439, 1554, 1655, 1740, 1812, 1874, 1930, 1985, 2039, 2092, 2147, 2209, 2281, 2366, 2463, 2569, 2677, 2783, 2884, 2982, 3087, 3209, 3358, 3538, 3743, 3956, 4154, 4320, 4451, 4552, 4631, 4699, 4767, 4835, 4903, 4984, 5092, 5239, 5429, 5656, 5911, 6181, 6455 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 152, 164, 174, 182, 189, 195, 201, 209, 220, 238, 262, 295, 335, 382, 431, 482, 534, 586, 639, 694, 750, 808, 867, 927, 988, 1050, 1112, 1175, 1238, 1304, 1371, 1440, 1507, 1576, 1650, 1730, 1822, 1920, 2007, 2059, 2060, 2000, 1890, 1759, 1648, 1586, 1585, 1636, 1722, 1818, 1906, 1981, 2048, 2116, 2196, 2296, 2417, 2555, 2702, 2850, 2992 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1335, 1358, 1393, 1435, 1482, 1532, 1584, 1637, 1691, 1747, 1805, 1865, 1925, 1985, 2041, 2092, 2137, 2175, 2211, 2251, 2297, 2354, 2417, 2480, 2536, 2576, 2598, 2606, 2605, 2603, 2605, 2616, 2632, 2651, 2667, 2677, 2677, 2672, 2669, 2677, 2703, 2752, 2822, 2901, 2975, 3033, 3071, 3093, 3114, 3157, 3235, 3358, 3516, 3690, 3854, 3987, 4080, 4140, 4186, 4247, 4341 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 456, 462, 469, 477, 486, 496, 506, 516, 528, 539, 552, 565, 579, 594, 609, 625, 642, 660, 680, 701, 724, 749, 776, 807, 842, 882, 927, 978, 1033, 1092, 1154, 1221, 1290, 1361, 1431, 1498, 1562, 1622, 1681, 1743, 1810, 1885, 1966, 2044, 2109, 2155, 2176, 2178, 2171, 2172, 2193, 2239, 2308, 2389, 2464, 2522, 2555, 2570, 2594, 2663, 2803 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 25, 27, 30, 32, 34, 36, 38, 39, 41, 44, 47, 51, 56, 62, 67, 74, 80, 86, 93, 101, 109, 119, 130, 142, 154, 164, 174, 182, 192, 205, 224, 248, 277, 309, 341, 371, 398, 423, 445, 463, 477, 485, 490, 492, 495, 501, 512, 529, 550, 572, 594, 612, 630, 660, 720, 821, 968, 1152, 1359, 1564, 1750 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3121, 3198, 3282, 3371, 3461, 3553, 3647, 3743, 3844, 3953, 4072, 4203, 4346, 4498, 4658, 4823, 4993, 5171, 5362, 5571, 5803, 6060, 6342, 6654, 6998, 7378, 7791, 8237, 8722, 9257, 9843, 10485, 11173, 11885, 12593, 13274, 13918, 14528, 15108, 15665, 16206, 16740, 17264, 17758, 18197, 18567, 18848, 19061, 19283, 19621, 20145, 20892, 21825, 22852, 23839, 24690, 25372, 25916, 26366, 26796, 27258 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 932, 924, 932, 949, 969, 988, 1004, 1018, 1032, 1048, 1069, 1096, 1128, 1159, 1181, 1191, 1184, 1164, 1141, 1124, 1124, 1144, 1180, 1227, 1276, 1322, 1362, 1398, 1433, 1470, 1510, 1554, 1602, 1652, 1705, 1759, 1815, 1872, 1934, 2003, 2081, 2169, 2266, 2370, 2481, 2598, 2722, 2852, 2981, 3100, 3205, 3292, 3364, 3427, 3490, 3560, 3639, 3725, 3818, 3914, 4013 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3413, 3501, 3595, 3697, 3806, 3922, 4044, 4173, 4308, 4448, 4593, 4743, 4897, 5058, 5225, 5398, 5579, 5767, 5963, 6167, 6379, 6599, 6829, 7066, 7312, 7564, 7823, 8088, 8363, 8652, 8956, 9277, 9614, 9961, 10314, 10667, 11021, 11374, 11730, 12088, 12452, 12818, 13188, 13563, 13946, 14338, 14746, 15169, 15591, 15996, 16371, 16701, 16995, 17298, 17676, 18167, 18805, 19561, 20346, 21032, 21533 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 21238, 21806, 22394, 22999, 23619, 24253, 24898, 25552, 26214, 26881, 27553, 28229, 28910, 29597, 30293, 31000, 31718, 32448, 33196, 33969, 34772, 35608, 36475, 37367, 38273, 39186, 40101, 41020, 41953, 42912, 43906, 44937, 45998, 47073, 48138, 49178, 50187, 51168, 52126, 53066, 53995, 54911, 55815, 56713, 57613, 58522, 59443, 60372, 61308, 62244, 63174, 64100, 65022, 65938, 66846, 67743, 68626, 69497, 70364, 71241, 72138 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 70, 68, 69, 72, 76, 78, 80, 81, 82, 85, 90, 98, 109, 122, 134, 146, 157, 167, 181, 201, 232, 272, 322, 383, 453, 533, 623, 724, 827, 926, 1015, 1091, 1156, 1215, 1277, 1347, 1427, 1515, 1609, 1707, 1806, 1908, 2013, 2121, 2232, 2346, 2471, 2609, 2753, 2894, 3026, 3132, 3224, 3369, 3659, 4149, 4876, 5797, 6799, 7718, 8442 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 4661, 4668, 4686, 4712, 4747, 4789, 4837, 4892, 4954, 5023, 5100, 5184, 5276, 5373, 5473, 5574, 5677, 5783, 5890, 5995, 6097, 6194, 6290, 6395, 6521, 6677, 6867, 7089, 7339, 7614, 7907, 8221, 8557, 8911, 9277, 9651, 10028, 10410, 10816, 11270, 11790, 12385, 13041, 13727, 14397, 15018, 15579, 16088, 16564, 17036, 17523, 18030, 18551, 19081, 19613, 20140, 20662, 21182, 21704, 22230, 22763 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7745, 7718, 7711, 7724, 7756, 7804, 7866, 7939, 8019, 8104, 8190, 8275, 8357, 8439, 8522, 8607, 8696, 8785, 8874, 8960, 9040, 9114, 9182, 9246, 9307, 9367, 9425, 9482, 9538, 9597, 9659, 9724, 9792, 9861, 9931, 9999, 10065, 10129, 10186, 10231, 10260, 10271, 10265, 10246, 10220, 10189, 10156, 10121, 10081, 10035, 9981, 9920, 9853, 9784, 9720, 9665, 9620, 9585, 9556, 9526, 9491 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7251, 7304, 7360, 7419, 7479, 7541, 7604, 7668, 7733, 7799, 7866, 7935, 8004, 8073, 8141, 8207, 8269, 8329, 8386, 8441, 8495, 8547, 8597, 8644, 8688, 8727, 8761, 8790, 8816, 8840, 8865, 8891, 8917, 8939, 8955, 8960, 8957, 8944, 8919, 8878, 8821, 8745, 8654, 8552, 8452, 8358, 8275, 8200, 8131, 8066, 8001, 7935, 7870, 7807, 7745, 7683, 7623, 7563, 7504, 7446, 7389 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 8876, 8976, 9071, 9159, 9239, 9312, 9378, 9437, 9489, 9536, 9578, 9617, 9652, 9683, 9711, 9734, 9753, 9769, 9784, 9803, 9828, 9860, 9897, 9941, 9990, 10043, 10101, 10163, 10223, 10275, 10313, 10335, 10343, 10341, 10335, 10330, 10327, 10325, 10324, 10324, 10326, 10330, 10336, 10342, 10344, 10339, 10328, 10311, 10291, 10270, 10250, 10231, 10214, 10204, 10208, 10231, 10275, 10338, 10412, 10486, 10554 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 9338, 9478, 9595, 9691, 9768, 9829, 9877, 9914, 9945, 9973, 10001, 10031, 10065, 10100, 10136, 10170, 10205, 10239, 10274, 10309, 10346, 10382, 10417, 10455, 10495, 10541, 10594, 10651, 10704, 10743, 10759, 10750, 10720, 10674, 10623, 10573, 10527, 10482, 10443, 10410, 10385, 10370, 10365, 10364, 10361, 10352, 10335, 10311, 10283, 10253, 10224, 10196, 10169, 10142, 10118, 10096, 10077, 10061, 10046, 10031, 10015 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 24824, 25314, 25821, 26334, 26846, 27352, 27846, 28325, 28786, 29226, 29646, 30043, 30418, 30768, 31092, 31392, 31665, 31916, 32153, 32389, 32632, 32886, 33150, 33426, 33713, 34011, 34319, 34636, 34963, 35299, 35641, 35990, 36342, 36685, 37003, 37285, 37524, 37723, 37888, 38028, 38150, 38255, 38343, 38411, 38457, 38480, 38480, 38461, 38429, 38390, 38351, 38315, 38281, 38250, 38225, 38206, 38194, 38189, 38190, 38194, 38199 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2341, 2381, 2432, 2491, 2557, 2627, 2701, 2777, 2853, 2929, 3004, 3076, 3146, 3212, 3275, 3336, 3392, 3445, 3495, 3545, 3595, 3646, 3697, 3748, 3796, 3839, 3877, 3911, 3942, 3975, 4010, 4049, 4090, 4132, 4175, 4215, 4253, 4288, 4320, 4345, 4364, 4375, 4379, 4375, 4361, 4339, 4308, 4269, 4222, 4168, 4107, 4041, 3969, 3896, 3828, 3767, 3716, 3673, 3637, 3604, 3573 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 16236, 16505, 16736, 16952, 17167, 17390, 17621, 17856, 18083, 18288, 18458, 18587, 18685, 18773, 18883, 19037, 19245, 19497, 19777, 20062, 20332, 20583, 20818, 21041, 21257, 21470, 21679, 21882, 22074, 22248, 22400, 22525, 22626, 22712, 22800, 22898, 23011, 23135, 23251, 23335, 23372, 23356, 23294, 23197, 23083, 22964, 22842, 22717, 22596, 22485, 22388, 22310, 22250, 22202, 22158, 22113, 22065, 22016, 21965, 21913, 21861 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 102799, 104373, 106088, 107887, 109722, 111555, 113360, 115119, 116822, 118468, 120057, 121584, 123035, 124386, 125606, 126680, 127595, 128368, 129047, 129693, 130358, 131057, 131788, 132549, 133333, 134135, 134957, 135807, 136685, 137595, 138536, 139498, 140477, 141472, 142489, 143524, 144582, 145641, 146639, 147494, 148149, 148578, 148798, 148843, 148764, 148602, 148375, 148080, 147716, 147276, 146763, 146170, 145521, 144880, 144331, 143933, 143715, 143652, 143677, 143690, 143618 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3437, 3510, 3586, 3663, 3739, 3813, 3884, 3952, 4017, 4079, 4137, 4193, 4246, 4295, 4339, 4379, 4413, 4443, 4471, 4500, 4532, 4568, 4608, 4651, 4697, 4744, 4794, 4844, 4895, 4944, 4989, 5029, 5066, 5099, 5129, 5158, 5185, 5210, 5234, 5256, 5278, 5298, 5317, 5335, 5351, 5363, 5372, 5379, 5384, 5386, 5388, 5388, 5388, 5387, 5388, 5391, 5397, 5406, 5415, 5425, 5433 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 37298, 37816, 38361, 38916, 39472, 40019, 40557, 41084, 41606, 42130, 42662, 43204, 43749, 44286, 44794, 45262, 45682, 46061, 46409, 46747, 47087, 47434, 47783, 48127, 48454, 48758, 49037, 49293, 49530, 49756, 49974, 50183, 50381, 50571, 50758, 50944, 51129, 51307, 51466, 51587, 51659, 51679, 51648, 51555, 51390, 51147, 50821, 50422, 49974, 49511, 49057, 48621, 48201, 47807, 47450, 47136, 46871, 46653, 46461, 46267, 46050 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 102, 103, 104, 104, 105, 106, 106, 107, 108, 109, 109, 110, 111, 113, 114, 115, 116, 117, 119, 120, 121, 122, 124, 125, 126, 126, 127, 127, 127, 128, 128, 129, 130, 131, 132, 134, 135, 137, 138, 140, 141, 142, 142, 143, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 4268, 4308, 4345, 4379, 4410, 4440, 4467, 4494, 4522, 4550, 4581, 4614, 4649, 4686, 4723, 4760, 4796, 4831, 4865, 4898, 4930, 4960, 4989, 5016, 5040, 5061, 5080, 5096, 5109, 5118, 5123, 5125, 5123, 5119, 5115, 5113, 5114, 5116, 5122, 5129, 5140, 5154, 5171, 5191, 5211, 5233, 5254, 5277, 5299, 5319, 5338, 5355, 5369, 5383, 5399, 5418, 5441, 5468, 5496, 5524, 5551 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1101, 1113, 1125, 1137, 1148, 1159, 1170, 1181, 1192, 1204, 1217, 1231, 1245, 1260, 1275, 1290, 1305, 1319, 1333, 1347, 1360, 1373, 1386, 1398, 1410, 1422, 1433, 1444, 1454, 1464, 1474, 1484, 1493, 1501, 1511, 1522, 1536, 1551, 1564, 1570, 1565, 1549, 1523, 1491, 1460, 1433, 1413, 1397, 1386, 1376, 1366, 1357, 1348, 1339, 1332, 1325, 1319, 1313, 1308, 1303, 1299 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 32, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 36, 37, 37, 38, 38, 39, 39, 39, 40, 40, 41, 41, 41, 42, 42, 43, 44, 44, 45, 45, 46, 47, 47, 48, 48, 48, 47, 47, 46, 45, 44, 44, 44, 45, 46, 46, 47, 48, 48, 49, 49, 49, 50, 50, 50, 50 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 4008, 4050, 4095, 4142, 4190, 4235, 4279, 4320, 4359, 4395, 4430, 4463, 4495, 4523, 4546, 4565, 4577, 4584, 4589, 4596, 4607, 4623, 4645, 4669, 4692, 4711, 4727, 4739, 4750, 4763, 4779, 4801, 4826, 4853, 4879, 4902, 4921, 4937, 4952, 4968, 4987, 5009, 5035, 5061, 5086, 5108, 5126, 5141, 5153, 5165, 5176, 5188, 5200, 5213, 5228, 5246, 5268, 5292, 5318, 5344, 5368 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 143, 145, 148, 151, 154, 158, 161, 165, 168, 172, 176, 179, 183, 186, 189, 192, 195, 197, 200, 202, 204, 207, 210, 213, 215, 218, 220, 222, 224, 226, 228, 231, 233, 236, 239, 241, 244, 247, 250, 252, 255, 257, 260, 262, 265, 267, 270, 273, 276, 278, 281, 284, 287, 290, 293, 297, 301, 305, 309, 314, 318 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2913, 2921, 2924, 2921, 2914, 2901, 2885, 2867, 2850, 2837, 2829, 2828, 2835, 2847, 2861, 2875, 2887, 2900, 2915, 2936, 2963, 2998, 3039, 3085, 3134, 3184, 3234, 3284, 3333, 3378, 3418, 3453, 3482, 3506, 3523, 3534, 3538, 3537, 3533, 3530, 3531, 3538, 3549, 3566, 3587, 3611, 3638, 3670, 3707, 3751, 3804, 3866, 3936, 4011, 4086, 4158, 4226, 4291, 4352, 4410, 4468 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 55, 55, 55, 54, 53, 52, 51, 50, 50, 49, 48, 48, 49, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 59, 60, 61, 62, 63, 64, 65, 65, 65, 65, 64, 64, 64, 65, 66, 68, 69, 70, 71, 71, 71, 72, 72, 73, 74, 75, 76, 77, 78, 78, 79, 80, 80, 81, 82, 83, 83, 84 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1949, 1955, 1965, 1979, 1996, 2015, 2036, 2058, 2082, 2107, 2132, 2159, 2185, 2211, 2237, 2261, 2284, 2306, 2326, 2346, 2366, 2386, 2405, 2424, 2442, 2457, 2470, 2482, 2492, 2502, 2513, 2525, 2536, 2549, 2564, 2582, 2604, 2630, 2653, 2666, 2664, 2645, 2611, 2569, 2525, 2488, 2458, 2435, 2415, 2395, 2371, 2345, 2317, 2288, 2258, 2228, 2197, 2167, 2138, 2112, 2091 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2567, 2570, 2579, 2592, 2609, 2630, 2652, 2678, 2706, 2737, 2771, 2808, 2847, 2888, 2928, 2967, 3004, 3038, 3071, 3104, 3137, 3171, 3204, 3238, 3270, 3300, 3328, 3355, 3381, 3406, 3432, 3457, 3482, 3508, 3535, 3564, 3595, 3629, 3660, 3684, 3697, 3699, 3689, 3672, 3650, 3628, 3606, 3583, 3559, 3531, 3498, 3462, 3421, 3378, 3333, 3287, 3239, 3190, 3143, 3102, 3068 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3265, 3300, 3334, 3366, 3398, 3429, 3461, 3492, 3522, 3553, 3582, 3611, 3639, 3667, 3695, 3724, 3754, 3785, 3815, 3846, 3876, 3905, 3933, 3960, 3984, 4006, 4025, 4042, 4056, 4070, 4083, 4095, 4108, 4120, 4134, 4148, 4164, 4181, 4200, 4220, 4240, 4262, 4286, 4310, 4334, 4360, 4386, 4413, 4440, 4466, 4492, 4515, 4537, 4560, 4588, 4624, 4669, 4721, 4778, 4836, 4891 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7010, 7072, 7126, 7173, 7217, 7260, 7302, 7344, 7388, 7433, 7480, 7527, 7576, 7628, 7683, 7741, 7804, 7871, 7937, 7997, 8049, 8090, 8122, 8146, 8169, 8193, 8219, 8246, 8272, 8295, 8311, 8320, 8323, 8326, 8334, 8351, 8378, 8414, 8457, 8506, 8559, 8617, 8678, 8738, 8789, 8827, 8849, 8859, 8861, 8864, 8872, 8888, 8911, 8942, 8981, 9030, 9090, 9159, 9235, 9310, 9382 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 50616, 50632, 50707, 50830, 50991, 51185, 51405, 51650, 51921, 52219, 52544, 52895, 53265, 53640, 54006, 54350, 54666, 54954, 55213, 55443, 55645, 55819, 55965, 56081, 56171, 56234, 56273, 56290, 56295, 56296, 56303, 56317, 56341, 56379, 56437, 56517, 56623, 56754, 56903, 57059, 57214, 57367, 57520, 57674, 57833, 57997, 58169, 58347, 58534, 58735, 58951, 59184, 59432, 59698, 59984, 60291, 60621, 60970, 61333, 61701, 62066 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1214, 1243, 1276, 1311, 1350, 1390, 1433, 1477, 1523, 1570, 1619, 1669, 1719, 1771, 1822, 1874, 1926, 1979, 2031, 2085, 2139, 2195, 2251, 2309, 2367, 2427, 2486, 2547, 2608, 2671, 2735, 2799, 2864, 2930, 3001, 3078, 3162, 3252, 3336, 3404, 3447, 3460, 3447, 3417, 3384, 3358, 3341, 3331, 3325, 3318, 3305, 3286, 3264, 3239, 3216, 3196, 3180, 3166, 3157, 3151, 3150 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 6, 7, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 43, 45, 47, 48, 50, 52, 55, 57, 59, 61, 63, 64, 64, 64, 64, 64, 65, 68, 72, 76, 79, 81, 82, 81, 80, 79, 78 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2661, 2734, 2807, 2878, 2947, 3014, 3077, 3138, 3196, 3251, 3306, 3358, 3409, 3458, 3504, 3546, 3584, 3618, 3651, 3684, 3719, 3758, 3799, 3841, 3883, 3922, 3959, 3993, 4027, 4062, 4100, 4138, 4175, 4215, 4263, 4322, 4399, 4490, 4564, 4585, 4527, 4374, 4143, 3883, 3659, 3521, 3486, 3536, 3641, 3752, 3834, 3879, 3898, 3896, 3887, 3880, 3875, 3869, 3861, 3853, 3846 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3850, 3880, 3909, 3936, 3961, 3982, 4000, 4016, 4031, 4045, 4059, 4074, 4090, 4105, 4119, 4131, 4139, 4146, 4152, 4160, 4171, 4187, 4206, 4228, 4251, 4275, 4298, 4322, 4347, 4373, 4401, 4430, 4460, 4492, 4529, 4571, 4621, 4675, 4727, 4769, 4794, 4799, 4788, 4762, 4729, 4690, 4648, 4602, 4555, 4512, 4475, 4447, 4426, 4411, 4400, 4389, 4379, 4369, 4360, 4350, 4338 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7566, 7647, 7726, 7805, 7885, 7966, 8047, 8126, 8202, 8272, 8333, 8386, 8431, 8471, 8510, 8551, 8597, 8646, 8697, 8747, 8793, 8834, 8871, 8912, 8969, 9047, 9150, 9274, 9408, 9535, 9643, 9728, 9795, 9848, 9893, 9934, 9973, 10007, 10045, 10094, 10161, 10247, 10350, 10462, 10572, 10672, 10758, 10834, 10897, 10948, 10987, 11013, 11026, 11032, 11035, 11042, 11053, 11067, 11083, 11098, 11110 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 46367, 46786, 47172, 47523, 47841, 48132, 48402, 48663, 48927, 49209, 49519, 49866, 50246, 50648, 51055, 51453, 51839, 52215, 52584, 52953, 53324, 53700, 54074, 54438, 54781, 55095, 55377, 55627, 55849, 56046, 56221, 56376, 56510, 56622, 56709, 56772, 56809, 56823, 56824, 56824, 56832, 56855, 56894, 56937, 56964, 56967, 56937, 56887, 56850, 56873, 56986, 57200, 57501, 57868, 58267, 58672, 59078, 59486, 59874, 60220, 60509 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 312, 313, 314, 314, 315, 315, 315, 315, 315, 315, 314, 313, 312, 310, 308, 307, 306, 306, 305, 305, 305, 305, 305, 305, 306, 308, 311, 315, 320, 325, 330, 335, 340, 345, 350, 354, 359, 363, 367, 371, 375, 380, 384, 388, 392, 396, 399, 401, 404, 406, 408, 409, 410, 412, 413, 415, 417, 419, 421, 423, 425 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 395, 405, 415, 424, 433, 441, 450, 458, 465, 472, 479, 485, 491, 497, 502, 507, 512, 517, 522, 527, 532, 536, 541, 545, 550, 555, 560, 565, 570, 575, 579, 583, 586, 588, 591, 595, 599, 603, 608, 612, 615, 616, 617, 616, 616, 615, 614, 613, 612, 611, 611, 612, 612, 613, 615, 616, 617, 618, 619, 619, 620 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 8417, 8431, 8474, 8532, 8597, 8661, 8720, 8770, 8812, 8846, 8875, 8899, 8917, 8924, 8916, 8889, 8840, 8774, 8710, 8670, 8670, 8718, 8805, 8923, 9054, 9186, 9316, 9445, 9566, 9675, 9765, 9834, 9883, 9914, 9931, 9938, 9934, 9921, 9905, 9895, 9899, 9920, 9955, 10001, 10050, 10097, 10141, 10182, 10223, 10264, 10306, 10351, 10396, 10439, 10478, 10511, 10537, 10556, 10570, 10581, 10590 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 28, 29, 29, 30, 30, 30, 31, 31, 31 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 6732, 6852, 6966, 7074, 7175, 7269, 7357, 7439, 7516, 7589, 7658, 7724, 7787, 7848, 7906, 7962, 8015, 8067, 8120, 8176, 8236, 8302, 8374, 8450, 8530, 8613, 8700, 8789, 8880, 8970, 9057, 9143, 9227, 9307, 9380, 9445, 9498, 9541, 9586, 9647, 9735, 9857, 10003, 10156, 10286, 10375, 10415, 10413, 10378, 10328, 10272, 10215, 10154, 10090, 10024, 9956, 9889, 9824, 9761, 9702, 9647 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1473, 1485, 1498, 1510, 1522, 1533, 1543, 1552, 1561, 1570, 1580, 1590, 1601, 1611, 1621, 1630, 1638, 1645, 1652, 1660, 1670, 1681, 1695, 1710, 1726, 1742, 1758, 1775, 1792, 1811, 1832, 1855, 1879, 1904, 1927, 1948, 1965, 1979, 1991, 1999, 2004, 2005, 2003, 2000, 1995, 1992, 1990, 1989, 1989, 1989, 1990, 1990, 1990, 1991, 1995, 2000, 2009, 2020, 2032, 2044, 2054 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 28070, 28239, 28433, 28644, 28866, 29097, 29337, 29585, 29846, 30123, 30419, 30737, 31074, 31421, 31771, 32114, 32449, 32776, 33103, 33441, 33796, 34169, 34556, 34951, 35348, 35739, 36124, 36501, 36862, 37195, 37493, 37755, 37981, 38174, 38336, 38472, 38582, 38668, 38740, 38808, 38883, 38973, 39080, 39197, 39312, 39421, 39514, 39604, 39730, 39945, 40283, 40757, 41347, 42016, 42710, 43387, 44038, 44664, 45243, 45754, 46182 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1254, 1283, 1309, 1332, 1354, 1374, 1394, 1413, 1432, 1451, 1471, 1491, 1512, 1534, 1556, 1579, 1602, 1626, 1649, 1672, 1692, 1709, 1723, 1738, 1753, 1772, 1796, 1822, 1849, 1875, 1896, 1911, 1923, 1931, 1940, 1950, 1964, 1980, 1995, 2006, 2010, 2005, 1993, 1979, 1969, 1967, 1975, 1992, 2013, 2034, 2052, 2065, 2074, 2081, 2086, 2090, 2094, 2097, 2099, 2101, 2102 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 6938, 6937, 6940, 6944, 6951, 6960, 6970, 6984, 7002, 7026, 7056, 7094, 7139, 7188, 7237, 7285, 7331, 7374, 7414, 7453, 7489, 7525, 7559, 7588, 7609, 7619, 7617, 7604, 7586, 7568, 7555, 7550, 7551, 7558, 7567, 7576, 7584, 7593, 7607, 7631, 7670, 7726, 7797, 7872, 7938, 7985, 8009, 8014, 8009, 8008, 8020, 8049, 8092, 8142, 8193, 8239, 8277, 8311, 8342, 8372, 8402 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 8628, 8674, 8721, 8770, 8820, 8871, 8922, 8974, 9028, 9083, 9141, 9200, 9262, 9323, 9383, 9440, 9494, 9544, 9589, 9630, 9664, 9693, 9716, 9734, 9752, 9769, 9788, 9807, 9826, 9842, 9856, 9866, 9873, 9879, 9885, 9893, 9904, 9916, 9932, 9952, 9978, 10011, 10050, 10091, 10130, 10162, 10187, 10206, 10223, 10242, 10268, 10301, 10339, 10385, 10441, 10508, 10588, 10678, 10773, 10862, 10941 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 41832, 41985, 42253, 42593, 42973, 43372, 43781, 44203, 44651, 45144, 45699, 46320, 46992, 47674, 48314, 48874, 49333, 49705, 50025, 50346, 50704, 51113, 51558, 52011, 52431, 52791, 53080, 53312, 53512, 53713, 53941, 54203, 54491, 54798, 55109, 55414, 55714, 56011, 56301, 56580, 56846, 57098, 57339, 57570, 57792, 58009, 58216, 58418, 58636, 58895, 59213, 59601, 60048, 60528, 61003, 61445, 61845, 62211, 62553, 62888, 63231 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 70094, 70467, 70808, 71117, 71396, 71655, 71909, 72180, 72491, 72869, 73336, 73900, 74552, 75257, 75971, 76655, 77301, 77910, 78458, 78923, 79287, 79543, 79693, 79757, 79758, 79719, 79648, 79550, 79431, 79301, 79169, 79039, 78922, 78841, 78826, 78896, 79056, 79299, 79622, 80022, 80487, 81026, 81625, 82225, 82750, 83148, 83389, 83491, 83501, 83491, 83512, 83583, 83685, 83788, 83849, 83836, 83740, 83579, 83380, 83183, 83017 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 30, 30, 30, 31, 31, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 35, 36, 36, 36 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 296, 298, 300, 302, 303, 305, 307, 309, 310, 312, 315, 317, 321, 324, 327, 330, 332, 334, 336, 338, 340, 342, 345, 348, 351, 354, 357, 359, 361, 363, 364, 365, 365, 365, 366, 367, 369, 371, 374, 378, 382, 386, 391, 397, 402, 408, 414, 420, 426, 431, 436, 440, 444, 447, 452, 458, 466, 476, 487, 498, 508 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 20, 19, 19, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 25, 25, 26, 26, 26, 26, 27, 27, 28, 28, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 32, 32, 32, 32, 33, 33, 33, 34, 34, 35, 36, 36, 37 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 10027, 10149, 10276, 10407, 10543, 10681, 10822, 10967, 11114, 11265, 11419, 11576, 11735, 11896, 12055, 12213, 12369, 12521, 12670, 12816, 12958, 13096, 13230, 13359, 13482, 13599, 13709, 13813, 13911, 14002, 14087, 14165, 14237, 14307, 14378, 14452, 14530, 14613, 14701, 14793, 14890, 14993, 15101, 15211, 15318, 15420, 15515, 15603, 15688, 15773, 15860, 15950, 16042, 16134, 16221, 16302, 16376, 16443, 16504, 16561, 16615 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 4668, 4726, 4789, 4852, 4913, 4971, 5027, 5083, 5144, 5213, 5296, 5393, 5503, 5618, 5729, 5830, 5917, 5992, 6056, 6115, 6169, 6222, 6270, 6311, 6341, 6356, 6355, 6341, 6322, 6307, 6304, 6316, 6341, 6377, 6416, 6456, 6493, 6531, 6571, 6618, 6674, 6740, 6814, 6890, 6960, 7017, 7060, 7090, 7114, 7137, 7166, 7201, 7242, 7289, 7345, 7409, 7482, 7565, 7653, 7743, 7831 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 46, 48, 50, 51, 52, 53, 53, 53, 54, 54, 55, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 69, 70, 70, 71, 71, 70, 70, 69, 68, 67, 66, 65, 63, 63, 62, 62, 62, 63, 65, 67, 68, 70, 72, 74, 76, 78, 79, 80, 81, 82, 83, 83, 84, 85, 86, 87 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 38, 38, 39, 40, 42, 44, 46, 48, 50, 53, 54, 55, 56, 57, 57, 57, 58, 58, 58, 59, 59, 59, 60, 60, 61, 61, 61, 60, 60, 60, 60, 61, 61, 62, 63, 63, 63, 62, 61, 61, 62, 65, 68, 72, 77, 80, 83, 85, 87, 89, 91, 93, 95, 97, 99, 100, 101, 101, 101, 101, 102 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 79, 80, 81, 83, 86, 89, 92, 96, 100, 104, 110, 115, 121, 127, 134, 140, 146, 153, 159, 164, 169, 174, 178, 181, 185, 189, 193, 197, 202, 206, 211, 215, 220, 225, 230, 235, 239, 243, 248, 252, 256, 261, 266, 271, 276, 280, 284, 287, 290, 293, 298, 303, 309, 316, 322, 329, 336, 342, 348, 354, 360 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 211, 216, 220, 223, 225, 227, 228, 229, 230, 230, 231, 232, 233, 234, 234, 235, 236, 236, 237, 238, 239, 240, 241, 243, 244, 246, 247, 247, 248, 248, 249, 250, 251, 252, 253, 254, 255, 257, 257, 258, 259, 260, 261, 262, 262, 263, 264, 265, 265, 266, 267, 268, 270, 271, 272, 274, 275, 276, 278, 279, 280 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 25, 26, 27, 27 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 15, 15, 16, 17, 18 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20, 21, 23, 24, 25, 26, 27, 29, 30, 32, 34, 36, 38, 40, 42, 43, 45, 46, 47, 49, 50, 51, 53, 54, 56 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 5920, 6051, 6180, 6305, 6424, 6539, 6652, 6765, 6881, 7005, 7141, 7290, 7450, 7618, 7787, 7952, 8110, 8264, 8413, 8563, 8715, 8870, 9025, 9176, 9315, 9438, 9544, 9634, 9710, 9776, 9835, 9886, 9931, 9975, 10029, 10097, 10184, 10286, 10396, 10504, 10601, 10685, 10758, 10822, 10879, 10932, 10981, 11024, 11064, 11102, 11138, 11175, 11212, 11246, 11273, 11292, 11301, 11302, 11296, 11289, 11282 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 100, 105, 108, 112, 114, 117, 119, 121, 123, 125, 127, 128, 130, 131, 132, 134, 136, 138, 140, 142, 144, 145, 147, 149, 150, 150, 150, 150, 149, 148, 148, 148, 149, 150, 150, 150, 150, 149, 148, 147, 147, 146, 146, 146, 145, 144, 142, 140, 137, 134, 132, 130, 129, 128, 128, 129, 132, 135, 139, 143, 148 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 51, 52, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 72, 72, 72, 72, 73, 73, 74, 75, 75, 75, 75, 75, 74, 74, 73, 72, 72, 71, 71, 71, 71, 71, 71, 71, 71, 71, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2380, 2453, 2532, 2615, 2703, 2796, 2892, 2992, 3095, 3202, 3312, 3425, 3540, 3658, 3778, 3900, 4022, 4146, 4271, 4397, 4524, 4652, 4780, 4909, 5039, 5169, 5299, 5429, 5559, 5692, 5826, 5962, 6100, 6240, 6382, 6524, 6666, 6810, 6954, 7099, 7245, 7392, 7540, 7688, 7834, 7978, 8119, 8256, 8393, 8528, 8663, 8799, 8935, 9071, 9207, 9343, 9479, 9615, 9750, 9884, 10017 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 77, 77, 77, 78, 79, 81, 83, 85, 86, 88, 90, 91, 92, 93, 94, 95, 95, 95, 95, 95, 94, 94, 94, 94, 93, 92, 91, 90, 89, 89, 89, 91, 93, 96, 98, 100, 100, 99, 98, 97, 96, 96, 97, 98, 99, 100, 101, 101, 101, 101, 102, 102, 102, 102, 103, 103, 103, 104, 104, 104, 105 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 210, 213, 217, 223, 229, 236, 244, 252, 260, 268, 275, 281, 287, 291, 296, 300, 304, 309, 313, 316, 319, 322, 324, 326, 327, 328, 327, 326, 325, 324, 326, 329, 334, 340, 347, 354, 360, 367, 374, 380, 385, 389, 393, 396, 399, 403, 407, 412, 416, 421, 425, 430, 433, 437, 441, 444, 447, 450, 453, 456, 459 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3221, 3276, 3333, 3392, 3453, 3516, 3582, 3650, 3721, 3794, 3869, 3947, 4026, 4107, 4190, 4275, 4362, 4450, 4539, 4627, 4713, 4798, 4881, 4965, 5052, 5144, 5242, 5345, 5454, 5569, 5692, 5822, 5959, 6101, 6245, 6389, 6534, 6677, 6821, 6965, 7110, 7255, 7400, 7545, 7691, 7838, 7987, 8136, 8286, 8433, 8578, 8720, 8860, 8996, 9130, 9261, 9389, 9514, 9638, 9765, 9896 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1403, 1437, 1468, 1496, 1521, 1542, 1560, 1576, 1592, 1609, 1629, 1652, 1679, 1707, 1735, 1760, 1783, 1804, 1824, 1845, 1869, 1896, 1925, 1955, 1984, 2012, 2037, 2059, 2081, 2105, 2132, 2165, 2200, 2237, 2270, 2297, 2317, 2332, 2342, 2353, 2365, 2381, 2399, 2419, 2440, 2462, 2485, 2509, 2534, 2559, 2582, 2605, 2627, 2647, 2666, 2682, 2696, 2708, 2719, 2730, 2741 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 222, 224, 228, 233, 239, 246, 253, 260, 267, 274, 282, 288, 295, 301, 306, 311, 315, 319, 321, 323, 325, 326, 327, 328, 328, 328, 327, 326, 325, 325, 325, 327, 329, 333, 336, 340, 344, 348, 352, 355, 358, 361, 363, 365, 366, 369, 371, 375, 378, 381, 384, 387, 390, 392, 394, 396, 398, 399, 399, 400, 401 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 14, 14, 14, 15, 15, 14, 14, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 9, 8, 7, 6, 5, 5, 4, 4, 5, 5, 5, 5, 5, 5, 5 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2218, 2210, 2212, 2221, 2233, 2247, 2262, 2279, 2299, 2323, 2356, 2396, 2442, 2491, 2538, 2578, 2609, 2634, 2656, 2680, 2710, 2746, 2787, 2833, 2882, 2932, 2984, 3037, 3090, 3141, 3188, 3230, 3269, 3305, 3338, 3370, 3400, 3429, 3457, 3487, 3518, 3552, 3587, 3623, 3657, 3690, 3719, 3747, 3770, 3787, 3797, 3799, 3795, 3785, 3773, 3761, 3750, 3739, 3729, 3719, 3710 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 46, 46, 46, 47, 48, 48, 49, 50, 51, 51, 51, 51, 51, 51, 50, 49, 48, 47, 46, 46, 45, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 43, 42, 42, 42, 41, 41, 41, 41, 41, 41, 42, 42, 43, 43, 44, 44, 45, 46, 46, 47, 48, 48, 49, 50, 50, 51, 52, 52 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 83, 84, 85, 85, 86, 87, 87, 88, 88, 89, 90, 91, 92, 93, 95, 96, 98, 100, 101, 103, 104, 105, 106, 107, 109, 110, 111, 113, 115, 116, 118, 120, 121, 123, 124, 126, 129, 131, 134, 136, 138, 140, 142, 144, 145, 147, 149, 151, 153, 155, 157, 159, 160, 162, 163, 165, 168, 170, 173, 175, 177 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 67, 68, 69, 71, 72, 74, 75, 77, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 90, 91, 92, 94, 95, 96, 97, 98, 99, 100, 101, 101, 102, 103, 104, 104, 105, 106, 107, 107, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 109 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 10, 10, 11, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 25, 27, 29, 30, 32, 34, 35, 35, 35, 34, 33, 32, 31, 32, 33, 34, 36, 37, 39, 40, 41, 42, 43 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 646, 659, 676, 695, 717, 740, 763, 786, 809, 829, 848, 865, 880, 893, 903, 912, 920, 926, 931, 938, 946, 956, 969, 983, 997, 1011, 1026, 1040, 1054, 1069, 1085, 1103, 1121, 1139, 1156, 1171, 1184, 1195, 1205, 1214, 1222, 1230, 1237, 1244, 1250, 1255, 1258, 1261, 1263, 1265, 1268, 1272, 1278, 1284, 1290, 1297, 1303, 1310, 1316, 1323, 1328 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 20, 22, 23, 25, 26, 28, 29, 29, 30, 31 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 27, 27, 28, 29, 29, 29, 29, 30, 30, 31, 33, 35, 39, 42, 46, 50, 53, 55, 58, 61, 64, 68, 73, 77, 82, 86, 89, 92, 94, 96, 98, 100, 102, 103, 104, 105, 105, 104, 104, 103, 103, 104, 104, 105, 106, 107, 108, 108, 108, 108, 109, 109, 108, 108, 108, 108, 107, 107, 107, 107, 106 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 69, 71, 73, 76, 78, 80, 82, 85, 87, 89, 92, 95, 97, 100, 103, 106, 109, 113, 116, 119, 122, 125, 127, 129, 131, 133, 135, 137, 139, 141, 144, 148, 151, 156, 160, 165, 170, 174, 179, 183, 188, 191, 195, 198, 202, 207, 212, 218, 225, 232, 239, 245, 252, 258, 265, 272, 279, 286, 294, 301, 309 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 966, 994, 1025, 1058, 1093, 1129, 1167, 1206, 1246, 1289, 1334, 1382, 1431, 1482, 1533, 1583, 1633, 1681, 1729, 1776, 1822, 1867, 1911, 1956, 2002, 2052, 2105, 2162, 2222, 2284, 2348, 2415, 2483, 2554, 2626, 2699, 2773, 2848, 2924, 3001, 3079, 3156, 3234, 3312, 3394, 3478, 3567, 3658, 3751, 3842, 3930, 4013, 4094, 4171, 4246, 4320, 4392, 4463, 4533, 4601, 4670 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2200, 2237, 2280, 2327, 2378, 2433, 2491, 2553, 2621, 2694, 2773, 2859, 2951, 3047, 3145, 3244, 3342, 3440, 3537, 3636, 3736, 3836, 3938, 4038, 4137, 4232, 4325, 4414, 4500, 4582, 4661, 4734, 4805, 4872, 4938, 5004, 5069, 5134, 5200, 5269, 5344, 5425, 5511, 5597, 5678, 5748, 5807, 5855, 5895, 5929, 5959, 5985, 6008, 6029, 6050, 6073, 6097, 6123, 6152, 6183, 6218 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3146, 3238, 3331, 3426, 3521, 3619, 3719, 3820, 3924, 4031, 4141, 4253, 4369, 4488, 4610, 4736, 4864, 4996, 5132, 5271, 5416, 5565, 5719, 5877, 6036, 6194, 6352, 6510, 6669, 6832, 7001, 7177, 7358, 7543, 7731, 7920, 8109, 8299, 8492, 8688, 8890, 9099, 9313, 9533, 9756, 9984, 10215, 10450, 10691, 10942, 11204, 11479, 11766, 12063, 12368, 12679, 12995, 13318, 13648, 13989, 14342 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1487, 1525, 1568, 1616, 1666, 1717, 1770, 1824, 1880, 1940, 2002, 2069, 2139, 2211, 2283, 2353, 2420, 2486, 2552, 2620, 2691, 2766, 2845, 2928, 3016, 3108, 3205, 3307, 3413, 3523, 3636, 3751, 3868, 3988, 4111, 4238, 4366, 4498, 4632, 4767, 4904, 5042, 5181, 5320, 5457, 5592, 5724, 5853, 5980, 6107, 6236, 6365, 6496, 6628, 6762, 6899, 7037, 7178, 7322, 7470, 7621 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 28296, 29110, 29980, 30904, 31880, 32906, 33978, 35095, 36253, 37448, 38677, 39939, 41234, 42564, 43931, 45339, 46784, 48264, 49788, 51361, 52988, 54669, 56396, 58156, 59931, 61708, 63486, 65261, 67013, 68715, 70353, 71916, 73416, 74880, 76351, 77859, 79410, 80999, 82635, 84327, 86077, 87890, 89758, 91654, 93542, 95393, 97202, 98969, 100679, 102317, 103874, 105340, 106724, 108056, 109382, 110732, 112117, 113530, 114968, 116423, 117886 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1295, 1332, 1372, 1414, 1460, 1508, 1558, 1611, 1664, 1719, 1775, 1830, 1887, 1944, 2002, 2063, 2126, 2191, 2258, 2328, 2400, 2474, 2551, 2631, 2713, 2798, 2885, 2975, 3066, 3158, 3250, 3344, 3437, 3530, 3621, 3710, 3795, 3877, 3960, 4046, 4138, 4237, 4342, 4450, 4557, 4659, 4757, 4849, 4937, 5021, 5101, 5177, 5249, 5318, 5386, 5455, 5525, 5596, 5668, 5743, 5822 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 860, 882, 905, 930, 956, 983, 1011, 1040, 1071, 1103, 1136, 1170, 1206, 1243, 1281, 1319, 1359, 1399, 1440, 1482, 1526, 1570, 1615, 1661, 1707, 1754, 1801, 1848, 1895, 1942, 1990, 2038, 2086, 2135, 2184, 2233, 2283, 2333, 2384, 2435, 2487, 2539, 2592, 2646, 2701, 2757, 2815, 2873, 2933, 2994, 3055, 3116, 3178, 3241, 3303, 3366, 3429, 3491, 3553, 3616, 3678 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 17150, 17507, 17866, 18225, 18580, 18931, 19277, 19618, 19955, 20290, 20624, 20959, 21295, 21631, 21964, 22294, 22619, 22941, 23269, 23613, 23979, 24371, 24786, 25215, 25647, 26070, 26484, 26890, 27293, 27701, 28120, 28550, 28989, 29435, 29887, 30340, 30796, 31255, 31713, 32170, 32625, 33075, 33521, 33962, 34399, 34833, 35264, 35691, 36109, 36515, 36903, 37273, 37628, 37970, 38309, 38648, 38989, 39331, 39676, 40024, 40374 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2714, 2768, 2824, 2883, 2944, 3007, 3072, 3139, 3209, 3280, 3353, 3428, 3505, 3585, 3667, 3751, 3838, 3928, 4021, 4117, 4217, 4321, 4429, 4540, 4653, 4768, 4884, 5002, 5122, 5244, 5369, 5497, 5628, 5763, 5900, 6041, 6184, 6331, 6481, 6636, 6794, 6957, 7123, 7293, 7464, 7635, 7807, 7979, 8150, 8322, 8495, 8669, 8843, 9017, 9188, 9355, 9517, 9676, 9834, 9993, 10157 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 53975, 55677, 57437, 59235, 61058, 62903, 64772, 66677, 68632, 70660, 72776, 74988, 77287, 79643, 82017, 84379, 86722, 89052, 91377, 93710, 96060, 98428, 100813, 103229, 105693, 108220, 110808, 113455, 116161, 118924, 121740, 124611, 127525, 130456, 133364, 136223, 139023, 141768, 144453, 147079, 149648, 152154, 154598, 157011, 159433, 161891, 164392, 166925, 169472, 172006, 174505, 176968, 179394, 181753, 184010, 186142, 188134, 189997, 191766, 193491, 195210 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 6082, 6194, 6322, 6461, 6610, 6767, 6930, 7100, 7276, 7459, 7649, 7846, 8048, 8252, 8455, 8654, 8848, 9036, 9220, 9401, 9579, 9755, 9930, 10100, 10266, 10426, 10580, 10730, 10878, 11031, 11192, 11363, 11543, 11732, 11927, 12127, 12332, 12541, 12757, 12981, 13214, 13456, 13706, 13958, 14205, 14440, 14662, 14872, 15072, 15266, 15454, 15639, 15820, 15996, 16168, 16338, 16505, 16669, 16831, 16992, 17151 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 12000, 12346, 12699, 13063, 13439, 13828, 14232, 14652, 15087, 15539, 16006, 16489, 16986, 17498, 18022, 18559, 19109, 19670, 20235, 20795, 21345, 21880, 22404, 22925, 23453, 23996, 24558, 25135, 25725, 26326, 26935, 27550, 28173, 28803, 29438, 30077, 30718, 31362, 32009, 32657, 33307, 33957, 34608, 35260, 35915, 36574, 37236, 37901, 38568, 39234, 39898, 40559, 41216, 41872, 42528, 43184, 43841, 44498, 45153, 45803, 46445 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3452, 3542, 3635, 3731, 3830, 3933, 4041, 4153, 4269, 4389, 4515, 4645, 4780, 4919, 5064, 5213, 5367, 5525, 5688, 5854, 6025, 6199, 6376, 6557, 6741, 6929, 7119, 7313, 7509, 7708, 7909, 8113, 8319, 8529, 8743, 8962, 9187, 9417, 9651, 9887, 10124, 10361, 10598, 10836, 11075, 11316, 11557, 11799, 12042, 12287, 12533, 12781, 13030, 13280, 13529, 13777, 14024, 14268, 14512, 14756, 15001 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 25, 26, 27, 27, 28, 29, 29, 30, 31, 31, 32, 34, 35, 36, 38, 39, 41, 43, 45, 47, 49, 50, 52, 54, 55, 57, 59, 61, 63, 65, 68, 71, 74, 78, 83, 87, 93, 99, 105, 111, 117, 122, 126, 131, 135, 139, 143, 148, 153, 159, 165, 172, 179, 187, 195, 202, 208, 214, 220, 225, 231 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 407, 423, 439, 454, 469, 483, 498, 513, 529, 545, 560, 576, 592, 608, 624, 641, 658, 676, 693, 708, 721, 730, 736, 740, 744, 749, 755, 763, 770, 775, 777, 776, 772, 766, 759, 752, 745, 739, 733, 728, 725, 723, 723, 724, 726, 728, 731, 734, 738, 741, 744, 748, 751, 754, 757, 761, 765, 770, 776, 781, 786 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1473, 1512, 1551, 1592, 1633, 1675, 1718, 1763, 1810, 1858, 1907, 1958, 2011, 2065, 2121, 2178, 2237, 2298, 2360, 2422, 2485, 2547, 2609, 2672, 2737, 2805, 2876, 2951, 3029, 3111, 3199, 3292, 3390, 3492, 3597, 3704, 3811, 3920, 4029, 4139, 4250, 4360, 4471, 4581, 4692, 4802, 4912, 5021, 5131, 5240, 5350, 5461, 5571, 5682, 5793, 5904, 6015, 6125, 6236, 6347, 6460 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7632, 7822, 8022, 8231, 8447, 8672, 8904, 9145, 9396, 9658, 9932, 10218, 10517, 10826, 11144, 11468, 11798, 12134, 12478, 12831, 13195, 13569, 13954, 14348, 14752, 15164, 15586, 16016, 16451, 16890, 17329, 17766, 18204, 18641, 19081, 19525, 19973, 20424, 20876, 21326, 21772, 22213, 22650, 23082, 23511, 23939, 24366, 24790, 25207, 25611, 26000, 26372, 26730, 27073, 27404, 27723, 28031, 28328, 28626, 28934, 29263 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 215, 223, 230, 236, 243, 250, 258, 265, 273, 282, 290, 298, 307, 315, 323, 332, 342, 351, 361, 368, 372, 374, 373, 370, 367, 364, 363, 363, 364, 365, 366, 367, 368, 370, 372, 376, 381, 387, 393, 400, 407, 413, 419, 424, 430, 436, 442, 448, 454, 460, 467, 473, 480, 487, 493, 500, 505, 510, 515, 520, 525 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2239, 2261, 2286, 2313, 2342, 2373, 2405, 2438, 2471, 2505, 2539, 2572, 2604, 2635, 2666, 2695, 2723, 2750, 2775, 2795, 2810, 2818, 2822, 2822, 2824, 2830, 2842, 2857, 2876, 2896, 2916, 2935, 2954, 2973, 2993, 3012, 3031, 3050, 3069, 3089, 3110, 3132, 3155, 3178, 3201, 3224, 3248, 3271, 3292, 3309, 3321, 3327, 3328, 3325, 3324, 3325, 3330, 3338, 3349, 3360, 3372 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 5094, 5292, 5509, 5739, 5981, 6230, 6487, 6750, 7019, 7296, 7580, 7873, 8172, 8477, 8786, 9096, 9407, 9720, 10040, 10374, 10724, 11093, 11479, 11882, 12302, 12740, 13196, 13669, 14150, 14629, 15096, 15550, 15990, 16426, 16868, 17323, 17793, 18276, 18766, 19256, 19741, 20219, 20692, 21160, 21627, 22092, 22557, 23020, 23483, 23945, 24408, 24870, 25334, 25797, 26261, 26726, 27191, 27656, 28120, 28583, 29043 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 37, 38, 38, 39, 40, 41, 41, 42, 43, 44, 45, 46, 46, 47, 48, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 55, 56, 56, 56, 57, 57, 57, 58, 58, 59, 59, 59, 60, 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63, 63, 64, 64, 64, 64, 65, 65, 65, 65 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 13737, 14100, 14482, 14882, 15300, 15734, 16178, 16625, 17068, 17499, 17909, 18295, 18658, 19004, 19345, 19689, 20036, 20384, 20734, 21084, 21434, 21786, 22137, 22484, 22819, 23136, 23435, 23719, 23990, 24253, 24511, 24764, 25013, 25268, 25542, 25843, 26177, 26537, 26914, 27292, 27658, 28009, 28349, 28676, 28991, 29295, 29586, 29867, 30141, 30416, 30697, 30987, 31284, 31592, 31914, 32253, 32611, 32986, 33370, 33753, 34126 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 23, 23, 24, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 40, 41, 43, 45, 46, 47, 48, 49, 49, 50, 50, 50, 50, 50, 50, 51, 51, 52, 53, 53, 54, 54, 55, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 157813, 159927, 162363, 165051, 167929, 170939, 174030, 177155, 180275, 183353, 186362, 189276, 192077, 194751, 197288, 199686, 201937, 204047, 206048, 207984, 209891, 211782, 213659, 215547, 217467, 219439, 221475, 223578, 225739, 227942, 230176, 232441, 234743, 237080, 239456, 241870, 244329, 246833, 249371, 251931, 254507, 257077, 259652, 262290, 265070, 268040, 271232, 274606, 278054, 281419, 284594, 287533, 290270, 292883, 295487, 298166, 300943, 303787, 306657, 309492, 312247 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 8177, 8418, 8627, 8822, 9015, 9213, 9421, 9637, 9859, 10080, 10292, 10495, 10691, 10893, 11115, 11368, 11657, 11976, 12306, 12621, 12905, 13151, 13364, 13552, 13725, 13893, 14055, 14212, 14369, 14532, 14708, 14898, 15101, 15318, 15549, 15791, 16047, 16316, 16588, 16851, 17097, 17322, 17529, 17725, 17921, 18124, 18339, 18563, 18795, 19027, 19259, 19487, 19715, 19953, 20218, 20521, 20866, 21246, 21645, 22037, 22404 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1908, 1948, 1993, 2040, 2088, 2136, 2183, 2229, 2275, 2323, 2372, 2424, 2477, 2531, 2582, 2628, 2669, 2704, 2738, 2776, 2820, 2872, 2931, 2990, 3043, 3083, 3109, 3123, 3129, 3136, 3147, 3165, 3189, 3216, 3244, 3269, 3291, 3311, 3333, 3361, 3398, 3446, 3503, 3565, 3623, 3675, 3717, 3752, 3783, 3817, 3858, 3907, 3962, 4021, 4079, 4134, 4185, 4233, 4278, 4323, 4368 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 289, 296, 305, 314, 324, 335, 346, 357, 368, 380, 393, 407, 422, 436, 450, 464, 476, 488, 499, 510, 521, 532, 543, 554, 565, 577, 588, 598, 609, 622, 635, 651, 668, 685, 700, 712, 718, 722, 723, 724, 728, 735, 744, 755, 766, 776, 785, 793, 801, 807, 812, 815, 816, 817, 819, 822, 828, 835, 844, 852, 861 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 65, 64, 64, 65, 66, 68, 69, 71, 73, 76, 78, 81, 83, 86, 89, 91, 94, 96, 99, 101, 105, 109, 114, 119, 124, 128, 132, 135, 137, 140, 142, 144, 147, 149, 151, 154, 157, 159, 162, 165, 169, 172, 176, 181, 185, 189, 193, 198, 202, 206, 210, 214, 218, 221, 225, 229, 232, 236, 239, 243, 246 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 1708, 1729, 1751, 1773, 1797, 1821, 1848, 1875, 1904, 1935, 1967, 2001, 2037, 2076, 2117, 2161, 2208, 2259, 2313, 2372, 2435, 2503, 2576, 2653, 2731, 2810, 2889, 2968, 3048, 3130, 3215, 3304, 3396, 3489, 3584, 3678, 3772, 3865, 3960, 4057, 4158, 4262, 4369, 4480, 4596, 4716, 4841, 4971, 5105, 5241, 5379, 5519, 5660, 5803, 5948, 6096, 6246, 6398, 6551, 6705, 6859 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 90, 92, 94, 97, 99, 102, 105, 108, 111, 114, 118, 121, 125, 129, 133, 137, 141, 145, 150, 155, 160, 166, 173, 179, 186, 193, 201, 208, 215, 223, 231, 238, 247, 255, 263, 271, 279, 287, 295, 303, 312, 321, 330, 339, 349, 359, 369, 380, 390, 401, 412, 424, 435, 446, 458, 469, 481, 492, 504, 515, 526 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 48, 49, 50, 52, 53, 55, 57, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 79, 81, 83, 85, 88, 91, 94, 97, 100, 103, 106, 109, 113, 116, 119, 121, 124, 127, 130, 133, 136, 139, 143, 147, 151, 155, 160, 164, 168, 172, 175, 178, 181, 185, 189, 194, 199, 204, 209, 215, 220, 225, 231, 236 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 60, 60, 61, 61, 62, 63, 63, 64, 65, 66, 67, 68, 70, 71, 73, 75, 77, 78, 80, 82, 84, 86, 88, 89, 91, 93, 95, 97, 100, 102, 104, 106, 109, 111, 114, 117, 119, 122, 125, 128, 130, 134, 137, 140, 143, 146, 148, 150, 152, 154, 155, 156, 157, 158, 158, 158, 158, 158, 158, 159, 159 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 26, 27, 27, 28, 28, 29, 30, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 47, 48, 49, 51, 52, 53, 55, 56, 57, 59, 60, 62, 64, 66, 68, 69, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 83, 84, 86, 87, 89, 90, 92, 93, 95, 96, 98 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 20, 20, 21, 22, 23, 25, 26, 27, 27, 28, 29, 31, 32, 33, 35, 37, 38, 40, 42, 44, 46, 47, 48, 49, 50, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 32, 33, 35, 36, 37, 38, 39, 40, 42, 43, 45, 46, 47, 49, 50, 52, 54, 56, 58, 60, 61, 62, 62, 62, 62, 63, 64, 66, 68, 71, 73, 75, 78, 81, 83, 86, 88, 90, 92, 94, 96, 99, 101, 104, 106, 108, 108, 109, 108, 108, 107, 107, 107, 107, 107, 106, 106, 105, 104, 104, 104 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7, 7, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 15, 15, 16, 17, 19, 21, 24, 27, 30, 33, 36, 39, 41, 44, 47, 49, 52, 55, 58, 60, 63, 65, 67, 68, 69, 68, 68, 66, 64, 62, 60, 57, 55, 54 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 22, 23, 24, 24, 25, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 35, 36, 38, 39, 41, 42, 44, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 58, 59, 59, 59, 59, 59, 58, 57, 56, 56 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 15, 15, 16, 16, 16, 16, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 19, 20, 21, 21, 21, 22, 21, 21, 21, 20, 20, 19, 19, 18, 18, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 20 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 60, 62, 64, 66, 67, 69, 70, 72, 74, 76, 78, 81, 84, 87, 90, 93, 97, 100, 103, 107, 110, 114, 118, 122, 126, 131, 135, 139, 143, 147, 152, 156, 161, 166, 170, 175, 180, 185, 190, 194, 198, 202, 205, 208, 212, 215, 219, 224, 228, 233, 237, 241, 245, 249, 252, 255, 258, 260, 263, 265, 268 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 82, 84, 87, 89, 92, 94, 97, 100, 102, 105, 109, 112, 116, 120, 123, 127, 131, 134, 138, 141, 143, 145, 147, 149, 150, 151, 152, 153, 154, 155, 156, 156, 157, 158, 159, 160, 161, 161, 161, 162, 163, 164, 166, 167, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 186 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 47, 49, 51, 53, 54, 55, 56, 57, 59, 60, 62, 64, 66, 69, 72, 74, 77, 79, 81, 83, 84, 86, 86, 87, 88, 88, 89, 90, 91, 92, 93, 93, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 96, 96, 96, 96, 97, 97, 97, 98, 99, 99, 100, 100, 101, 102, 102, 103, 104, 104 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ), vals=c( 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14 )), .Names = c("args","vals")) ), labels = list( "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "EastAfrica", "CentralAfrica", "CentralAfrica", "CentralAfrica", "CentralAfrica", "CentralAfrica", "CentralAfrica", "CentralAfrica", "CentralAfrica", "CentralAfrica", "NorthAfrica", "NorthAfrica", "NorthAfrica", "NorthAfrica", "NorthAfrica", "NorthAfrica", "NorthAfrica", "SouthAfrica", "SouthAfrica", "SouthAfrica", "SouthAfrica", "SouthAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "WestAfrica", "EastAsia", "EastAsia", "EastAsia", "EastAsia", "EastAsia", "EastAsia", "EastAsia", "EastAsia", "CentralAsia", "CentralAsia", "CentralAsia", "CentralAsia", "CentralAsia", "SouthAsia", "SouthAsia", "SouthAsia", "SouthAsia", "SouthAsia", "SouthAsia", "SouthAsia", "SouthAsia", "SouthAsia", "SouthEastAsia", "SouthEastAsia", "SouthEastAsia", "SouthEastAsia", "SouthEastAsia", "SouthEastAsia", "SouthEastAsia", "SouthEastAsia", "SouthEastAsia", "SouthEastAsia", "SouthEastAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "WestAsia", "EastEurope", "EastEurope", "EastEurope", "EastEurope", "EastEurope", "EastEurope", "EastEurope", "EastEurope", "EastEurope", "EastEurope", "NorthEurope", "NorthEurope", "NorthEurope", "NorthEurope", "NorthEurope", "NorthEurope", "NorthEurope", "NorthEurope", "NorthEurope", "NorthEurope", "NorthEurope", "NorthEurope", "NorthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "SouthEurope", "WestEurope", "WestEurope", "WestEurope", "WestEurope", "WestEurope", "WestEurope", "WestEurope", "WestEurope", "WestEurope", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "Caribbean", "CentralAmerica", "CentralAmerica", "CentralAmerica", "CentralAmerica", "CentralAmerica", "CentralAmerica", "CentralAmerica", "CentralAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "SouthAmerica", "NorthAmerica", "NorthAmerica", "NorthAmerica", "NorthAmerica", "NorthAmerica", "Australia_NewZealand", "Australia_NewZealand", "Melanesia", "Melanesia", "Melanesia", "Melanesia", "Melanesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia", "Micronesia" ), identifier = list( "Burundi", "Comoros", "Djibouti", "Eritrea", "Ethiopia", "Kenya", "Madagascar", "Malawi", "Mauritius", "Mayotte", "Mozambique", "Reunion", "Rwanda", "Seychelles", "Somalia", "South Sudan", "Uganda", "United Republic of Tanzania", "Zambia", "Zimbabwe", "Angola", "Cameroon", "Central African Republic", "Chad", "Congo", "Democratic Republic of the Congo", "Equatorial Guinea", "Gabon", "Sao Tome and Principe", "Algeria", "Egypt", "Libya", "Morocco", "Sudan", "Tunisia", "Western Sahara", "Botswana", "Lesotho", "Namibia", "South Africa", "Swaziland", "Benin", "Burkina Faso", "Cape Verde", "Cote d'Ivoire", "Gambia", "Ghana", "Guinea", "Guinea-Bissau", "Liberia", "Mali", "Mauritania", "Niger", "Nigeria", "Saint Helena", "Senegal", "Sierra Leone", "Togo", "China", "China, Hong Kong SAR", "China, Macao SAR", "Dem. People's Republic of Korea", "Japan", "Mongolia", "Republic of Korea", "Other non-specified areas", "Kazakhstan", "Kyrgyzstan", "Tajikistan", "Turkmenistan", "Uzbekistan", "Afghanistan", "Bangladesh", "Bhutan", "India", "Iran (Islamic Republic of)", "Maldives", "Nepal", "Pakistan", "Sri Lanka", "Brunei Darussalam", "Cambodia", "Indonesia", "Lao People's Democratic Republic", "Malaysia", "Myanmar", "Philippines", "Singapore", "Thailand", "Timor-Leste", "Viet Nam", "Armenia", "Azerbaijan", "Bahrain", "Cyprus", "Georgia", "Iraq", "Israel", "Jordan", "Kuwait", "Lebanon", "Oman", "Qatar", "Saudi Arabia", "State of Palestine", "Syrian Arab Republic", "Turkey", "United Arab Emirates", "Yemen", "Belarus", "Bulgaria", "Czech Republic", "Hungary", "Poland", "Republic of Moldova", "Romania", "Russian Federation", "Slovakia", "Ukraine", "Channel Islands", "Denmark", "Estonia", "Faeroe Islands", "Finland", "Iceland", "Ireland", "Isle of Man", "Latvia", "Lithuania", "Norway", "Sweden", "United Kingdom", "Albania", "Andorra", "Bosnia and Herzegovina", "Croatia", "Gibraltar", "Greece", "Holy See", "Italy", "Malta", "Montenegro", "Portugal", "San Marino", "Serbia", "Slovenia", "Spain", "TFYR Macedonia", "Austria", "Belgium", "France", "Germany", "Liechtenstein", "Luxembourg", "Monaco", "Netherlands", "Switzerland", "Anguilla", "Antigua and Barbuda", "Aruba", "Bahamas", "Barbados", "British Virgin Islands", "Caribbean Netherlands", "Cayman Islands", "Cuba", "Curacao", "Dominica", "Dominican Republic", "Grenada", "Guadeloupe", "Haiti", "Jamaica", "Martinique", "Montserrat", "Puerto Rico", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent and the Grenadines", "Sint Maarten (Dutch part)", "Trinidad and Tobago", "Turks and Caicos Islands", "United States Virgin Islands", "Belize", "Costa Rica", "El Salvador", "Guatemala", "Honduras", "Mexico", "Nicaragua", "Panama", "Argentina", "Bolivia (Plurinational State of)", "Brazil", "Chile", "Colombia", "Ecuador", "Falkland Islands (Malvinas)", "French Guiana", "Guyana", "Paraguay", "Peru", "Suriname", "Uruguay", "Venezuela (Bolivarian Republic of)", "Bermuda", "Canada", "Greenland", "Saint Pierre and Miquelon", "United States of America", "Australia", "New Zealand", "Fiji", "New Caledonia", "Papua New Guinea", "Solomon Islands", "Vanuatu", "Guam", "Kiribati", "Marshall Islands", "Micronesia (Fed. States of)", "Nauru", "Northern Mariana Islands", "Palau", "American Samoa", "Cook Islands", "French Polynesia", "Niue", "Samoa", "Tokelau", "Tonga", "Tuvalu", "Wallis and Futuna Islands" )), class = "functional") )ddalpha/R/ddalpha.test.r0000644000176200001440000000521512776660136014627 0ustar liggesusersddalpha.test <- function(learn, test, ...){ ops <- options(warn = -1) on.exit(options(ops)) if(is.vector(test)) test = t(as.matrix(test)) tryCatch({ time <- system.time( ddalpha <- ddalpha.train(learn, ...) ) C = ddalpha$dimension+1 cc = ddalpha.classify(objects = test[,-C], ddalpha = ddalpha) if (is.numeric(test[,C])){ if(is.factor(cc[[1]]) || is.character(cc[[1]])){ cc <- unlist(lapply(cc, as.character)) cc[cc == "Ignored"] <- NA } equal = (cc == test[,C]) } else { cc <- unlist(lapply(cc, as.numeric)) equal = (cc == as.numeric(test[,C])) } if(!(T %in% equal) && !(F %in% equal)) { return(NA)} error = sum(!equal,na.rm = T)/(sum(!equal,na.rm = T)+sum(equal,na.rm = T)) return(list(error = error, correct = sum(equal,na.rm = T), incorrect = sum(!equal,na.rm = T), total = length(cc)-sum(is.na(equal)), ignored = sum(is.na(equal)), n = length(cc), time = time[1])) } # tryCatch({} , error = function(e) { print ("ERROR T") print (e) }, finally = { }) return (NA) } ddalpha.getErrorRateCV <- function(data, numchunks = 10, ...){ n = nrow(data) numchunks = min(n, numchunks) chunksize = ceiling(n/numchunks) sample = seq(from = 1, by = numchunks, length.out = chunksize) errors = 0 total = 0 times = c() for (i in 1:numchunks){ sample = sample[sample<=n] learn = data[-sample,,drop = F] test = data[sample,,drop = F] el = ddalpha.test(learn, test, ...) if(is.list(el)){ errors = errors + el$incorrect total = total + el$total times = c(times,el$time) } sample = sample+1 } return (list(errors = errors/total, time = mean(times), time_sd = sd(times))) } ddalpha.getErrorRatePart <- function(data, size = 0.3, times = 10, ...){ if (!is.numeric(size) || size <=0 || size >= nrow(data)) stop("Wrong size of excluded sequences") if(size < 1) size = max(1, size*nrow(data)) # at least 1 point size = as.integer(size) indexes = 1:nrow(data) errors = c() total = 0 time = c() for (i in 1:times){ samp = sample(indexes, size) learn = data[-samp,,drop = F] test = data[samp,,drop = F] el = ddalpha.test(learn, test, ...) if(is.list(el)){ errors = c(errors,el$incorrect/el$total) time = c(time,el$time) } } return (list(errors = mean(errors), errors_sd = sd(errors), errors_vec = errors, time = mean(time), time_sd = sd(time))) }ddalpha/R/routines.r0000644000176200001440000000222412776660136014121 0ustar liggesusersis.numeric_data.frame <- function(x){ if (is.data.frame(x) && all(sapply(x,base::is.numeric))) return (T) return (F) } is.numeric <- function(x){ if (base::is.numeric(x)) return (T) if (is.data.frame(x) && all(sapply(x,base::is.numeric))) return (T) return (F) } resetPar <- function() { dev.new() op <- par(no.readonly = TRUE) dev.off() op } tryCatchCapture <- function(expr, warn = T, err = T) { val <- NULL myWarnings <- NULL wHandler <- function(w) { myWarnings <<- c(myWarnings, w$message) invokeRestart("muffleWarning") } myError <- NULL eHandler <- function(e) { myError <<- e$message NULL } if(warn && err){ val <- tryCatch(withCallingHandlers(expr, warning = wHandler), error = eHandler) return(list(value = val, warnings = myWarnings, error=myError)) } if(warn){ val <- tryCatch(withCallingHandlers(expr, warning = wHandler)) return(list(value = val, warnings = myWarnings)) } if(err){ val <- tryCatch(expr, error = eHandler) return(list(value = val, error=myError)) } val <- expr return(list(value = val)) } ddalpha/R/depth.space.zonoid.r0000644000176200001440000000434012526722560015742 0ustar liggesusers################################################################################ # File: depth.space.zonoid.r # Created by: Pavlo Mozharovskyi # First published: 28.02.2013 # Last revised: 15.05.2013 # # Computation of the depth space based on the zonoid data depth. ################################################################################ depth.space.zonoid <- function(data, cardinalities, seed = 0){ if (seed!=0) set.seed(seed) if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data, is.numeric))) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.vector(cardinalities, mode = "numeric") || is.na(min(cardinalities)) || sum(.is.wholenumber(cardinalities)) != length(cardinalities) || min(cardinalities) <= 0 || sum(cardinalities) != nrow(data)){ stop("Argument \"cardinalities\" should be a vector of cardinalities of the classes in \"data\" ") } if (sum(cardinalities < ncol(data) + 1) != 0){ stop("Not in all classes sufficiently enough objetcs") } dim <- ncol(data) depth.space <- NULL for (i in 1:length(cardinalities)){ objects <- as.vector(t(data[(1 + sum(cardinalities[0:(i - 1)])):sum(cardinalities[1:i]),])) pattern.depths <- NULL for (j in 1:length(cardinalities)){ pattern <- as.vector(t(data[(1 + sum(cardinalities[0:(j - 1)])):sum(cardinalities[1:j]),])) ds <- .C("ZDepth", as.double(pattern), as.double(objects), as.integer(cardinalities[j]), as.integer(cardinalities[i]), as.integer(dim), as.integer(seed), depths=double(cardinalities[i]))$depths if (j == i){ ds <- replace(ds, which(ds < 1/cardinalities[j] - sqrt(.Machine$double.eps)), 1/cardinalities[j]) }else{ ds <- replace(ds, which(ds < 1/cardinalities[j] - sqrt(.Machine$double.eps)), 0) } pattern.depths <- cbind(pattern.depths, ds, deparse.level = 0) } depth.space <- rbind(depth.space, pattern.depths, deparse.level = 0) } return (depth.space) } ddalpha/R/qda.r0000644000176200001440000000047112310572710013000 0ustar liggesusersqda.train <- function(data){ new.frm <- data.frame(data) z <- qda(formula=as.formula(paste("X", ncol(data), " ~ .", sep="")), data = new.frm)#, prior = rep(1, dimension)/dimension) return (z) } qda.classify <- function(objects, qda){ z <- predict(qda, data.frame(objects))$class return (z) } ddalpha/R/mahalanobis.scaling.r0000644000176200001440000000734112745655010016142 0ustar liggesusers mah.moment <- function(x){ mu <- colMeans(x) scale.eig <- eigen(cov(x)) B <- scale.eig$vectors %*% diag(sqrt(scale.eig$values)) B_inv <- solve(B) return (list(mu = as.numeric(mu), b = B_inv, s = cov(x))) } mah.mcd <- function(x, alpha = 1/2){ #library(robustbase) estimate <- covMcd(x, alpha = alpha) mu <- estimate$center scale.eig <- eigen(estimate$cov) B <- scale.eig$vectors %*% diag(sqrt(scale.eig$values)) B_inv <- solve(B) return (list(mu = as.numeric(mu), b = B_inv, s = estimate$cov)) } mah.transform <- function (x, mu, B_inv, inv = F) { if (inv) return (t(solve(B_inv) %*% (t(x))+mu)) return (t(B_inv %*% (t(x)-mu))) } mah.transform.back <- function (x, mu, B_inv) { return (t(solve(B_inv) %*% (t(x))+mu)) } MahMomentTransformer <- function(mu, b){ f <- function(points, inv = F){ return(mah.transform(points, mu, b, inv)) } environment(f) <- new.env() environment(f)$mu = mu environment(f)$b = b return (f) } # mahalanobisRegionsX <- function(x, depths = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1), col = "black"){ # c <- c(0,0) # for (i in 1:nrow(x)){ # c <- c + x[i,] # } # mu <- c / nrow(x) # # mahalanobisRegions(mu, cov(x), col) # } # # mahalanobisRegions <- function(mu, s, depths = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1), col = "black"){ # sigma.inv <- solve(s) # for (i in 1:length(depths)){ # ellipsem(mu = mu, amat = sigma.inv, c2 = 1/depths[i] - 1, showcentre = F, col = col) # } # } depth.Mahalanobis <- function(x, data, mah.estimate = "moment", mah.parMcd = 0.75){ if (mah.estimate == "moment") s = solve(cov(data)) else if (mah.estimate == "MCD") s = solve(covMcd(data, alpha = mah.parMcd)$cov) else stop ("Wrong parameter 'estimate'") if (is.matrix(x) || is.data.frame(x)) { nx = nrow(x) if (ncol(x) != ncol(data)) stop("Wrong dimension of x") } else if (is.vector(x)) { nx = 1 if (length(x) != ncol(data)) stop("Wrong dimension of x") } else stop("Wrong type of x") # if (mah.estimate == "MCD"){ # MCD in c++ is much slower depths <- .Mahalanobis_depth(x, center = colMeans(data), sigma = s) return (depths) # } points <- as.vector(t(data)) objects <- as.vector(t(x)) depths <- .C("MahalanobisDepth", as.double(points), as.double(objects), as.integer(nrow(data)), as.integer(nx), as.integer(ncol(data)), as.double(mah.parMcd), depths=double(nx))$depths return (depths) } depth.space.Mahalanobis <- function(data, cardinalities, mah.estimate = "moment", mah.parMcd = 0.75){ if (is.data.frame(data)) data <- data.matrix(data) if (!is.numeric(data) || !is.matrix(data) || ncol(data) < 2){ stop("Argument \"data\" should be a numeric matrix of at least 2-dimensional data") } if (!is.vector(cardinalities, mode = "numeric") || is.na(min(cardinalities)) || sum(.is.wholenumber(cardinalities)) != length(cardinalities) || min(cardinalities) <= 0 || sum(cardinalities) != nrow(data)){ stop("Argument \"cardinalities\" should be a vector of cardinalities of the classes in \"data\" ") } if (sum(cardinalities < ncol(data) + 1) != 0){ stop("Not in all classes sufficiently enough objetcs") } depth.space <- NULL for (i in 1:length(cardinalities)){ pattern <- data[(1 + sum(cardinalities[0:(i - 1)])):sum(cardinalities[1:i]),] pattern.depths <- depth.Mahalanobis (data, pattern, mah.estimate, mah.parMcd) depth.space <- cbind(depth.space, pattern.depths, deparse.level = 0) } return (depth.space) } ddalpha/R/dataf.population.r0000644000176200001440000061132213156307576015525 0ustar liggesusersdataf.population <- function() return(structure(list( name = "World population data", args = "year", vals = "population (in thousands)", dataf = list( structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2309, 2359, 2404, 2446, 2488, 2532, 2578, 2628, 2680, 2733, 2787, 2840, 2895, 2951, 3012, 3079, 3154, 3235, 3317, 3393, 3457, 3508, 3547, 3583, 3624, 3677, 3745, 3825, 3918, 4019, 4127, 4240, 4359, 4487, 4625, 4774, 4936, 5109, 5284, 5454, 5613, 5759, 5895, 6020, 6134, 6239, 6333, 6420, 6512, 6624, 6767, 6947, 7160, 7401, 7662, 7934, 8218, 8515, 8822, 9138, 9461, 9790, 10125, 10466, 10817, 11179 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 156, 160, 164, 167, 170, 173, 176, 179, 183, 186, 189, 192, 195, 198, 202, 205, 210, 214, 219, 224, 228, 233, 238, 243, 249, 256, 265, 275, 287, 298, 309, 319, 328, 338, 348, 358, 368, 380, 391, 403, 415, 428, 440, 453, 466, 480, 493, 507, 520, 534, 548, 562, 575, 590, 604, 619, 634, 649, 665, 682, 699, 716, 734, 752, 770, 788 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 62, 63, 65, 66, 68, 70, 71, 74, 76, 80, 84, 88, 94, 101, 108, 115, 123, 131, 140, 150, 160, 169, 179, 191, 205, 224, 249, 278, 308, 336, 359, 375, 385, 393, 405, 423, 451, 486, 523, 559, 588, 611, 627, 639, 650, 661, 673, 686, 698, 711, 723, 734, 745, 757, 768, 778, 789, 799, 810, 820, 831, 842, 853, 865, 876, 888 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1142, 1163, 1185, 1208, 1233, 1259, 1286, 1315, 1344, 1375, 1408, 1441, 1476, 1513, 1550, 1589, 1629, 1671, 1714, 1759, 1805, 1854, 1905, 1958, 2013, 2070, 2129, 2189, 2251, 2316, 2384, 2454, 2525, 2599, 2676, 2756, 2843, 2934, 3020, 3091, 3139, 3161, 3161, 3151, 3148, 3164, 3203, 3261, 3337, 3430, 3535, 3655, 3789, 3928, 4065, 4191, 4304, 4406, 4501, 4594, 4690, 4790, 4892, 4999, 5110, 5228 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 18128, 18467, 18820, 19184, 19560, 19947, 20348, 20764, 21201, 21662, 22151, 22671, 23221, 23798, 24397, 25014, 25641, 26281, 26945, 27654, 28415, 29246, 30135, 31029, 31855, 32569, 33145, 33614, 34053, 34569, 35240, 36093, 37110, 38259, 39494, 40776, 42097, 43470, 44909, 46434, 48057, 49785, 51603, 53478, 55367, 57237, 59076, 60893, 62708, 64550, 66444, 68393, 70391, 72432, 74507, 76608, 78736, 80892, 83080, 85302, 87562, 89859, 92191, 94558, 96959, 99391 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 6077, 6240, 6412, 6593, 6782, 6980, 7186, 7401, 7626, 7860, 8105, 8361, 8629, 8908, 9200, 9505, 9823, 10154, 10502, 10868, 11252, 11657, 12083, 12530, 12997, 13486, 13996, 14527, 15082, 15661, 16268, 16901, 17560, 18241, 18943, 19661, 20394, 21140, 21899, 22668, 23446, 24234, 25030, 25825, 26608, 27373, 28116, 28842, 29565, 30301, 31066, 31863, 32692, 33551, 34437, 35349, 36286, 37251, 38244, 39270, 40328, 41420, 42543, 43693, 44864, 46050 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 4084, 4168, 4256, 4348, 4444, 4544, 4647, 4754, 4865, 4980, 5099, 5224, 5353, 5487, 5625, 5769, 5918, 6072, 6233, 6400, 6576, 6760, 6952, 7152, 7360, 7576, 7800, 8032, 8269, 8508, 8747, 8983, 9221, 9462, 9714, 9981, 10264, 10563, 10878, 11206, 11546, 11898, 12264, 12644, 13040, 13453, 13883, 14329, 14790, 15263, 15745, 16236, 16736, 17245, 17763, 18290, 18826, 19371, 19927, 20496, 21080, 21679, 22294, 22925, 23572, 24235 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2954, 3008, 3065, 3125, 3187, 3252, 3320, 3391, 3464, 3540, 3619, 3700, 3784, 3872, 3963, 4059, 4158, 4262, 4371, 4484, 4604, 4729, 4860, 4997, 5141, 5293, 5455, 5628, 5807, 5987, 6163, 6327, 6484, 6659, 6893, 7206, 7617, 8108, 8621, 9073, 9409, 9604, 9683, 9698, 9726, 9823, 10007, 10260, 10564, 10883, 11193, 11492, 11789, 12090, 12408, 12748, 13112, 13498, 13905, 14329, 14770, 15227, 15700, 16190, 16695, 17215 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 493, 506, 521, 537, 554, 571, 588, 605, 623, 641, 660, 679, 698, 717, 736, 753, 770, 785, 799, 813, 826, 840, 852, 865, 878, 892, 907, 922, 938, 953, 966, 978, 989, 999, 1008, 1016, 1023, 1030, 1037, 1046, 1056, 1068, 1083, 1099, 1114, 1129, 1142, 1154, 1165, 1176, 1185, 1194, 1202, 1209, 1216, 1222, 1228, 1233, 1238, 1243, 1248, 1253, 1258, 1264, 1269, 1273 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 15, 16, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 36, 37, 39, 40, 42, 44, 45, 47, 49, 51, 53, 55, 58, 61, 64, 68, 72, 76, 80, 85, 90, 95, 100, 106, 112, 117, 123, 129, 134, 140, 145, 150, 156, 161, 167, 172, 178, 184, 190, 196, 203, 209, 215, 221, 227, 234, 240 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 6313, 6405, 6503, 6607, 6717, 6832, 6953, 7079, 7211, 7349, 7493, 7643, 7799, 7961, 8129, 8303, 8482, 8669, 8861, 9059, 9262, 9469, 9680, 9901, 10141, 10405, 10694, 11002, 11320, 11635, 11936, 12229, 12512, 12767, 12968, 13103, 13155, 13143, 13124, 13182, 13372, 13720, 14204, 14776, 15363, 15913, 16411, 16873, 17317, 17774, 18265, 18792, 19349, 19928, 20523, 21127, 21738, 22360, 22995, 23648, 24321, 25017, 25733, 26467, 27216, 27978 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 248, 259, 268, 277, 284, 292, 300, 308, 317, 326, 336, 345, 355, 366, 378, 391, 405, 421, 437, 451, 462, 470, 475, 479, 482, 485, 488, 492, 497, 503, 509, 517, 527, 537, 548, 559, 569, 579, 589, 599, 611, 622, 635, 648, 661, 674, 686, 699, 712, 724, 737, 749, 760, 771, 782, 792, 801, 809, 817, 824, 831, 837, 843, 849, 855, 861 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2186, 2251, 2313, 2378, 2449, 2526, 2608, 2694, 2780, 2861, 2933, 2996, 3051, 3103, 3162, 3233, 3319, 3418, 3527, 3641, 3755, 3868, 3984, 4102, 4227, 4359, 4500, 4648, 4804, 4969, 5141, 5314, 5486, 5669, 5878, 6118, 6411, 6742, 7048, 7239, 7260, 7071, 6713, 6300, 5996, 5913, 6098, 6506, 7047, 7585, 8022, 8329, 8539, 8686, 8829, 9008, 9231, 9481, 9750, 10025, 10294, 10556, 10817, 11078, 11342, 11610 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 42, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 57, 58, 60, 61, 63, 64, 65, 66, 67, 68, 69, 69, 70, 70, 70, 70, 70, 71, 71, 73, 74, 75, 77, 78, 78, 79, 80, 81, 83, 84, 86, 87, 89, 90, 91, 92, 92, 93, 94, 95, 95, 96, 96 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2264, 2308, 2352, 2397, 2444, 2492, 2541, 2592, 2645, 2700, 2756, 2815, 2875, 2937, 3002, 3070, 3144, 3227, 3311, 3385, 3445, 3478, 3490, 3527, 3645, 3881, 4260, 4754, 5289, 5759, 6090, 6252, 6272, 6200, 6113, 6068, 6083, 6139, 6217, 6285, 6322, 6320, 6294, 6269, 6279, 6346, 6481, 6673, 6904, 7148, 7385, 7610, 7827, 8039, 8251, 8467, 8687, 8909, 9133, 9357, 9582, 9807, 10034, 10268, 10518, 10787 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2583, 2601, 2625, 2652, 2685, 2721, 2761, 2805, 2852, 2902, 2955, 3011, 3070, 3132, 3196, 3264, 3334, 3408, 3484, 3564, 3647, 3734, 3824, 3917, 4015, 4117, 4222, 4329, 4443, 4566, 4701, 4850, 5007, 5166, 5314, 5445, 5560, 5660, 5735, 5771, 5762, 5699, 5593, 5484, 5425, 5453, 5584, 5807, 6093, 6398, 6693, 6968, 7233, 7500, 7784, 8100, 8446, 8815, 9209, 9623, 10056, 10510, 10981, 11454, 11911, 12340 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 5158, 5309, 5456, 5601, 5748, 5899, 6056, 6221, 6396, 6585, 6788, 7007, 7240, 7487, 7746, 8014, 8293, 8581, 8873, 9163, 9446, 9720, 9988, 10256, 10534, 10827, 11140, 11471, 11818, 12178, 12548, 12927, 13318, 13727, 14163, 14631, 15134, 15668, 16228, 16802, 17384, 17973, 18572, 19178, 19791, 20413, 21041, 21679, 22337, 23026, 23758, 24535, 25356, 26218, 27115, 28042, 29001, 29992, 31014, 32067, 33149, 34260, 35401, 36573, 37783, 39032 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7650, 7847, 8056, 8275, 8503, 8741, 8988, 9244, 9511, 9787, 10074, 10373, 10684, 11006, 11339, 11684, 12039, 12406, 12787, 13187, 13606, 14046, 14506, 14985, 15477, 15980, 16493, 17018, 17556, 18111, 18685, 19280, 19895, 20528, 21178, 21842, 22517, 23204, 23915, 24663, 25458, 26307, 27204, 28123, 29030, 29903, 30734, 31534, 32324, 33135, 33992, 34899, 35855, 36866, 37935, 39066, 40261, 41522, 42845, 44222, 45649, 47123, 48646, 50213, 51823, 53470 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2317, 2376, 2439, 2504, 2573, 2644, 2718, 2795, 2876, 2961, 3050, 3143, 3241, 3343, 3449, 3560, 3674, 3793, 3917, 4047, 4185, 4331, 4484, 4644, 4811, 4983, 5161, 5344, 5532, 5728, 5929, 6138, 6353, 6572, 6794, 7017, 7242, 7469, 7696, 7921, 8143, 8361, 8577, 8794, 9018, 9254, 9502, 9764, 10034, 10309, 10585, 10861, 11140, 11426, 11726, 12044, 12382, 12739, 13115, 13508, 13917, 14344, 14787, 15246, 15721, 16212 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2747, 2830, 2918, 3010, 3105, 3204, 3305, 3411, 3520, 3634, 3752, 3877, 4006, 4141, 4280, 4422, 4568, 4719, 4874, 5036, 5206, 5385, 5573, 5768, 5968, 6170, 6374, 6581, 6797, 7031, 7289, 7572, 7876, 8198, 8528, 8863, 9199, 9536, 9867, 10185, 10485, 10763, 11020, 11257, 11477, 11683, 11878, 12060, 12227, 12374, 12500, 12604, 12691, 12774, 12868, 12984, 13128, 13298, 13495, 13721, 13974, 14256, 14565, 14898, 15246, 15603 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 4355, 4440, 4529, 4622, 4715, 4808, 4901, 4992, 5084, 5177, 5271, 5367, 5466, 5566, 5666, 5765, 5864, 5963, 6066, 6178, 6301, 6438, 6588, 6750, 6924, 7107, 7300, 7501, 7717, 7953, 8212, 8498, 8808, 9129, 9445, 9745, 10024, 10286, 10545, 10821, 11128, 11472, 11849, 12247, 12648, 13043, 13425, 13802, 14188, 14602, 15059, 15563, 16110, 16691, 17296, 17913, 18541, 19184, 19842, 20520, 21220, 21942, 22686, 23448, 24228, 25022 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 4466, 4544, 4623, 4705, 4788, 4874, 4963, 5055, 5152, 5254, 5361, 5475, 5594, 5719, 5850, 5988, 6131, 6281, 6437, 6600, 6771, 6949, 7134, 7328, 7530, 7740, 7960, 8188, 8426, 8674, 8932, 9201, 9481, 9771, 10071, 10381, 10701, 11032, 11370, 11717, 12070, 12430, 12797, 13169, 13547, 13930, 14317, 14710, 15109, 15514, 15928, 16349, 16779, 17219, 17668, 18127, 18597, 19078, 19570, 20075, 20591, 21119, 21659, 22211, 22773, 23344 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1327, 1340, 1353, 1368, 1383, 1399, 1417, 1436, 1457, 1479, 1504, 1529, 1557, 1586, 1617, 1649, 1683, 1719, 1755, 1792, 1829, 1865, 1901, 1937, 1976, 2017, 2062, 2108, 2159, 2214, 2274, 2340, 2412, 2486, 2558, 2627, 2691, 2751, 2810, 2871, 2938, 3011, 3089, 3171, 3254, 3336, 3417, 3498, 3577, 3653, 3726, 3795, 3860, 3923, 3988, 4056, 4127, 4202, 4280, 4361, 4445, 4531, 4620, 4711, 4804, 4900 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2502, 2544, 2589, 2637, 2686, 2736, 2787, 2839, 2892, 2946, 3003, 3061, 3122, 3185, 3248, 3311, 3374, 3436, 3501, 3570, 3645, 3727, 3816, 3909, 4001, 4089, 4173, 4255, 4336, 4421, 4513, 4611, 4716, 4830, 4955, 5093, 5244, 5409, 5586, 5769, 5958, 6151, 6350, 6557, 6773, 7002, 7242, 7494, 7760, 8043, 8343, 8664, 9002, 9354, 9710, 10068, 10424, 10780, 11140, 11511, 11896, 12299, 12715, 13146, 13587, 14037 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 808, 824, 841, 860, 879, 899, 920, 942, 964, 988, 1014, 1040, 1068, 1097, 1127, 1158, 1190, 1224, 1259, 1296, 1335, 1376, 1419, 1464, 1510, 1556, 1603, 1651, 1700, 1750, 1802, 1855, 1911, 1968, 2025, 2084, 2143, 2202, 2262, 2324, 2386, 2450, 2515, 2581, 2650, 2721, 2796, 2874, 2953, 3032, 3109, 3184, 3257, 3332, 3413, 3503, 3605, 3716, 3833, 3951, 4066, 4177, 4286, 4394, 4505, 4620 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 12184, 12429, 12681, 12944, 13223, 13518, 13830, 14161, 14509, 14872, 15248, 15638, 16041, 16462, 16904, 17370, 17862, 18378, 18913, 19459, 20010, 20563, 21121, 21691, 22282, 22902, 23557, 24243, 24948, 25656, 26357, 27049, 27741, 28448, 29191, 29986, 30829, 31722, 32689, 33763, 34963, 36309, 37784, 39315, 40804, 42184, 43425, 44558, 45648, 46788, 48049, 49449, 50971, 52602, 54315, 56090, 57927, 59835, 61809, 63845, 65939, 68087, 70291, 72553, 74877, 77267 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 226, 230, 233, 235, 236, 238, 240, 243, 246, 249, 252, 255, 258, 261, 265, 269, 275, 282, 289, 292, 291, 285, 275, 262, 250, 238, 228, 220, 215, 215, 221, 233, 251, 273, 295, 314, 330, 343, 354, 365, 377, 390, 404, 418, 433, 448, 464, 480, 496, 513, 531, 549, 568, 587, 606, 626, 646, 666, 686, 707, 729, 751, 774, 797, 821, 845 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 473, 476, 478, 479, 481, 483, 485, 488, 491, 495, 499, 504, 510, 516, 524, 533, 543, 554, 566, 578, 590, 602, 613, 625, 637, 650, 664, 679, 695, 712, 729, 748, 767, 787, 808, 830, 853, 877, 901, 927, 952, 978, 1005, 1031, 1059, 1086, 1115, 1144, 1173, 1202, 1232, 1260, 1289, 1318, 1348, 1378, 1409, 1441, 1474, 1507, 1542, 1577, 1613, 1650, 1688, 1725 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 60, 59, 59, 58, 58, 59, 60, 61, 62, 63, 64, 65, 64, 64, 64, 65, 66, 68, 70, 72, 74, 76, 78, 79, 81, 83, 85, 87, 90, 93, 95, 97, 99, 100, 102, 104, 105, 107, 109, 111, 114, 116, 118, 121, 123, 126, 128, 130, 132, 135, 137, 140, 143, 146, 150, 153, 157, 160, 164, 167, 171, 175, 178, 182, 186, 190 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 8872, 9040, 9216, 9405, 9610, 9830, 10066, 10316, 10578, 10849, 11125, 11405, 11690, 11985, 12296, 12627, 12980, 13354, 13744, 14144, 14550, 14960, 15377, 15804, 16247, 16709, 17190, 17690, 18212, 18761, 19338, 19944, 20576, 21228, 21894, 22566, 23241, 23918, 24591, 25258, 25912, 26554, 27181, 27786, 28362, 28904, 29412, 29888, 30337, 30767, 31184, 31590, 31990, 32395, 32817, 33268, 33749, 34262, 34811, 35402, 36036, 36717, 37439, 38186, 38934, 39667 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 20897, 21383, 21904, 22458, 23043, 23656, 24296, 24959, 25645, 26350, 27072, 27810, 28561, 29323, 30094, 30873, 31661, 32457, 33252, 34038, 34809, 35561, 36302, 37047, 37816, 38624, 39479, 40378, 41325, 42322, 43370, 44466, 45610, 46807, 48062, 49374, 50748, 52174, 53618, 55036, 56397, 57690, 58922, 60108, 61273, 62435, 63596, 64755, 65923, 67113, 68335, 69600, 70909, 72248, 73596, 74942, 76274, 77605, 78976, 80442, 82041, 83788, 85661, 87614, 89580, 91508 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1113, 1132, 1152, 1176, 1203, 1233, 1267, 1304, 1345, 1388, 1435, 1484, 1536, 1592, 1652, 1717, 1787, 1862, 1941, 2025, 2114, 2208, 2307, 2409, 2514, 2622, 2730, 2840, 2953, 3070, 3191, 3319, 3450, 3583, 3714, 3841, 3961, 4077, 4188, 4295, 4398, 4499, 4597, 4692, 4785, 4878, 4970, 5062, 5154, 5245, 5337, 5428, 5518, 5609, 5703, 5802, 5907, 6018, 6123, 6209, 6266, 6289, 6283, 6266, 6259, 6278 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 8986, 9244, 9530, 9838, 10163, 10503, 10852, 11211, 11577, 11949, 12329, 12713, 13101, 13489, 13872, 14248, 14617, 14979, 15335, 15688, 16040, 16390, 16741, 17097, 17467, 17855, 18262, 18689, 19133, 19595, 20072, 20564, 21071, 21584, 22095, 22596, 23085, 23561, 24027, 24489, 24950, 25410, 25866, 26314, 26748, 27162, 27557, 27934, 28292, 28631, 28951, 29251, 29536, 29813, 30093, 30385, 30691, 31011, 31351, 31715, 32108, 32532, 32984, 33453, 33921, 34378 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 5734, 5884, 6039, 6200, 6368, 6543, 6724, 6913, 7109, 7314, 7527, 7750, 7982, 8224, 8476, 8739, 9013, 9300, 9598, 9909, 10233, 10569, 10918, 11284, 11669, 12076, 12506, 12958, 13430, 13917, 14418, 14935, 15470, 16015, 16559, 17098, 17619, 18131, 18669, 19285, 20009, 20861, 21821, 22829, 23806, 24692, 25466, 26149, 26777, 27407, 28080, 28805, 29570, 30366, 31176, 31990, 32809, 33638, 34470, 35297, 36115, 36918, 37712, 38515, 39350, 40235 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3605, 3696, 3773, 3838, 3894, 3944, 3988, 4032, 4076, 4123, 4176, 4236, 4303, 4378, 4459, 4545, 4638, 4738, 4842, 4950, 5060, 5173, 5288, 5405, 5527, 5652, 5782, 5915, 6055, 6205, 6368, 6545, 6734, 6930, 7128, 7322, 7510, 7692, 7871, 8051, 8233, 8418, 8603, 8785, 8957, 9114, 9256, 9384, 9499, 9604, 9699, 9786, 9864, 9939, 10017, 10102, 10196, 10299, 10408, 10522, 10639, 10759, 10881, 11006, 11130, 11254 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 14, 16, 18, 19, 20, 21, 23, 25, 27, 30, 33, 36, 39, 42, 46, 51, 57, 63, 69, 74, 77, 76, 73, 70, 70, 75, 86, 101, 119, 137, 151, 161, 168, 173, 177, 182, 189, 195, 203, 210, 217, 224, 231, 238, 246, 253, 261, 268, 277, 290, 306, 326, 351, 378, 404, 428, 449, 467, 483, 498, 512, 525, 538, 550, 561, 573 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 413, 425, 437, 448, 459, 470, 480, 490, 501, 512, 524, 537, 550, 564, 580, 596, 613, 631, 651, 671, 693, 716, 740, 765, 793, 822, 854, 888, 923, 960, 996, 1033, 1070, 1107, 1145, 1183, 1222, 1261, 1300, 1340, 1380, 1420, 1460, 1500, 1539, 1576, 1612, 1646, 1678, 1708, 1737, 1763, 1787, 1810, 1836, 1864, 1896, 1930, 1968, 2007, 2048, 2090, 2133, 2177, 2220, 2262 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 734, 744, 755, 766, 777, 788, 799, 811, 824, 837, 851, 866, 882, 898, 915, 933, 952, 971, 991, 1011, 1032, 1054, 1075, 1098, 1122, 1149, 1178, 1209, 1241, 1274, 1307, 1341, 1374, 1407, 1438, 1468, 1495, 1520, 1545, 1570, 1598, 1628, 1660, 1693, 1725, 1754, 1779, 1802, 1822, 1840, 1856, 1871, 1885, 1899, 1912, 1926, 1940, 1956, 1972, 1990, 2011, 2033, 2057, 2083, 2109, 2135 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 485, 495, 505, 515, 526, 538, 549, 562, 575, 588, 603, 617, 633, 649, 665, 683, 700, 719, 738, 758, 780, 804, 830, 856, 882, 906, 928, 950, 971, 991, 1013, 1034, 1057, 1082, 1112, 1149, 1195, 1247, 1304, 1361, 1415, 1466, 1514, 1559, 1606, 1654, 1705, 1758, 1810, 1857, 1898, 1931, 1958, 1981, 2003, 2027, 2054, 2083, 2116, 2152, 2194, 2240, 2292, 2347, 2403, 2459 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 13683, 13994, 14322, 14665, 15020, 15385, 15760, 16146, 16546, 16962, 17396, 17850, 18322, 18810, 19308, 19814, 20325, 20844, 21375, 21926, 22503, 23107, 23736, 24385, 25041, 25699, 26354, 27010, 27674, 28361, 29077, 29829, 30611, 31410, 32205, 32983, 33734, 34463, 35196, 35965, 36793, 37692, 38647, 39620, 40558, 41427, 42210, 42922, 43584, 44234, 44897, 45579, 46272, 46971, 47667, 48353, 49028, 49694, 50349, 50992, 51622, 52237, 52837, 53417, 53969, 54490 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 273, 279, 285, 292, 300, 307, 315, 324, 332, 341, 349, 358, 366, 374, 383, 392, 401, 411, 422, 434, 446, 459, 472, 487, 502, 517, 533, 550, 568, 585, 603, 621, 639, 658, 680, 705, 735, 767, 801, 834, 863, 887, 908, 926, 944, 963, 985, 1007, 1029, 1048, 1064, 1075, 1082, 1088, 1095, 1105, 1118, 1135, 1154, 1174, 1193, 1212, 1232, 1251, 1269, 1287 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2255, 2258, 2264, 2274, 2287, 2304, 2323, 2346, 2371, 2400, 2432, 2466, 2503, 2543, 2586, 2632, 2681, 2733, 2789, 2847, 2908, 2972, 3039, 3110, 3185, 3263, 3346, 3432, 3523, 3619, 3718, 3822, 3931, 4045, 4164, 4287, 4414, 4546, 4685, 4836, 5001, 5183, 5378, 5582, 5787, 5986, 6176, 6361, 6546, 6740, 6949, 7175, 7415, 7666, 7923, 8182, 8444, 8708, 8974, 9241, 9510, 9779, 10050, 10322, 10598, 10880 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 4284, 4324, 4367, 4413, 4463, 4517, 4575, 4636, 4699, 4764, 4829, 4895, 4960, 5028, 5099, 5175, 5256, 5343, 5434, 5528, 5625, 5723, 5825, 5930, 6040, 6155, 6274, 6399, 6531, 6672, 6823, 6985, 7158, 7341, 7531, 7728, 7931, 8140, 8356, 8580, 8811, 9050, 9297, 9552, 9817, 10090, 10373, 10666, 10969, 11283, 11608, 11944, 12291, 12652, 13028, 13422, 13834, 14264, 14709, 15166, 15632, 16107, 16591, 17085, 17589, 18106 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 178, 186, 192, 195, 197, 197, 198, 198, 199, 200, 202, 206, 211, 217, 224, 231, 240, 249, 257, 265, 270, 273, 274, 273, 273, 273, 274, 275, 278, 282, 286, 290, 296, 302, 308, 314, 319, 324, 329, 334, 341, 349, 358, 368, 379, 389, 400, 410, 420, 430, 439, 447, 455, 463, 469, 474, 478, 481, 484, 487, 490, 495, 501, 507, 514, 521 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2630, 2693, 2758, 2828, 2901, 2979, 3063, 3153, 3251, 3358, 3475, 3602, 3741, 3890, 4050, 4220, 4400, 4591, 4794, 5011, 5242, 5488, 5748, 6021, 6308, 6606, 6916, 7237, 7570, 7912, 8266, 8629, 9002, 9383, 9769, 10158, 10548, 10940, 11337, 11745, 12166, 12601, 13047, 13500, 13954, 14404, 14852, 15296, 15728, 16138, 16518, 16865, 17185, 17492, 17803, 18133, 18486, 18862, 19262, 19685, 20132, 20604, 21103, 21622, 22157, 22702 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 271, 273, 277, 284, 293, 304, 317, 331, 344, 357, 368, 377, 384, 389, 395, 401, 408, 416, 426, 436, 447, 460, 475, 490, 506, 521, 536, 552, 568, 585, 604, 625, 648, 673, 701, 732, 767, 804, 843, 881, 917, 949, 980, 1008, 1037, 1066, 1096, 1127, 1159, 1193, 1229, 1267, 1308, 1350, 1395, 1441, 1488, 1536, 1587, 1639, 1693, 1749, 1807, 1867, 1928, 1991 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 4981, 5068, 5191, 5339, 5504, 5680, 5864, 6052, 6246, 6445, 6652, 6867, 7085, 7303, 7513, 7711, 7891, 8057, 8221, 8397, 8597, 8827, 9084, 9350, 9604, 9831, 10023, 10190, 10354, 10551, 10802, 11118, 11488, 11895, 12311, 12716, 13104, 13480, 13853, 14232, 14628, 15043, 15472, 15907, 16339, 16761, 17169, 17569, 17969, 18384, 18825, 19294, 19788, 20305, 20840, 21390, 21952, 22528, 23116, 23713, 24318, 24929, 25545, 26164, 26787, 27410 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3094, 3142, 3186, 3228, 3271, 3316, 3364, 3414, 3467, 3522, 3577, 3634, 3691, 3750, 3812, 3878, 3948, 4022, 4095, 4160, 4215, 4259, 4293, 4320, 4341, 4360, 4377, 4394, 4416, 4452, 4507, 4584, 4685, 4805, 4937, 5079, 5224, 5375, 5548, 5764, 6034, 6367, 6751, 7156, 7536, 7863, 8125, 8331, 8498, 8647, 8799, 8956, 9114, 9282, 9465, 9669, 9898, 10153, 10427, 10716, 11012, 11316, 11629, 11949, 12276, 12609 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 535, 544, 552, 560, 567, 575, 584, 592, 601, 609, 616, 623, 630, 637, 644, 653, 663, 674, 686, 699, 712, 725, 738, 752, 765, 778, 792, 805, 819, 834, 850, 867, 885, 904, 924, 945, 966, 988, 1010, 1033, 1056, 1080, 1105, 1130, 1155, 1181, 1207, 1234, 1260, 1288, 1315, 1344, 1372, 1402, 1432, 1463, 1495, 1527, 1561, 1597, 1634, 1674, 1715, 1757, 1801, 1844 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 930, 943, 958, 974, 991, 1010, 1030, 1051, 1073, 1096, 1120, 1145, 1170, 1197, 1224, 1253, 1283, 1315, 1348, 1383, 1420, 1458, 1497, 1539, 1583, 1629, 1676, 1724, 1775, 1831, 1893, 1962, 2036, 2108, 2164, 2197, 2207, 2196, 2170, 2137, 2103, 2066, 2029, 2006, 2019, 2080, 2198, 2365, 2558, 2742, 2892, 2999, 3071, 3124, 3185, 3270, 3385, 3522, 3673, 3821, 3958, 4080, 4190, 4294, 4397, 4503 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 4708, 4759, 4811, 4865, 4920, 4975, 5032, 5090, 5147, 5205, 5264, 5322, 5381, 5442, 5504, 5568, 5636, 5706, 5781, 5861, 5949, 6045, 6147, 6256, 6368, 6482, 6597, 6713, 6832, 6957, 7090, 7234, 7387, 7542, 7693, 7832, 7957, 8073, 8190, 8323, 8482, 8673, 8891, 9131, 9384, 9641, 9901, 10168, 10445, 10737, 11047, 11376, 11723, 12089, 12475, 12881, 13310, 13759, 14223, 14695, 15167, 15639, 16112, 16592, 17086, 17600 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 660, 676, 692, 709, 727, 747, 767, 789, 811, 834, 858, 883, 909, 936, 964, 992, 1022, 1052, 1084, 1116, 1149, 1183, 1218, 1254, 1291, 1329, 1368, 1408, 1449, 1491, 1534, 1579, 1624, 1671, 1719, 1767, 1816, 1865, 1916, 1969, 2024, 2081, 2140, 2202, 2267, 2334, 2404, 2476, 2551, 2630, 2711, 2797, 2885, 2975, 3065, 3154, 3242, 3328, 3415, 3502, 3591, 3683, 3777, 3873, 3970, 4068 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2560, 2638, 2717, 2797, 2878, 2960, 3042, 3126, 3212, 3302, 3395, 3494, 3597, 3703, 3812, 3922, 4032, 4144, 4258, 4376, 4497, 4623, 4753, 4887, 5027, 5171, 5321, 5476, 5636, 5799, 5963, 6130, 6299, 6473, 6652, 6838, 7032, 7233, 7446, 7671, 7912, 8169, 8442, 8733, 9039, 9362, 9702, 10059, 10433, 10821, 11225, 11642, 12076, 12527, 12996, 13485, 13996, 14528, 15085, 15672, 16292, 16946, 17636, 18359, 19114, 19899 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 37860, 38431, 39050, 39708, 40400, 41122, 41874, 42656, 43470, 44321, 45212, 46144, 47118, 48128, 49170, 50239, 51336, 52469, 53641, 54859, 56132, 57454, 58829, 60285, 61857, 63566, 65427, 67425, 69512, 71619, 73698, 75730, 77730, 79729, 81775, 83902, 86118, 88413, 90774, 93180, 95617, 98085, 100592, 103145, 105753, 108425, 111165, 113975, 116861, 119826, 122877, 126015, 129246, 132581, 136033, 139611, 143318, 147153, 151116, 155207, 159425, 163771, 168240, 172817, 177476, 182202 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2477, 2530, 2587, 2648, 2713, 2782, 2855, 2931, 3010, 3092, 3178, 3266, 3356, 3450, 3548, 3649, 3754, 3863, 3976, 4094, 4218, 4348, 4485, 4625, 4765, 4900, 5032, 5160, 5289, 5424, 5569, 5724, 5888, 6063, 6246, 6438, 6638, 6847, 7063, 7285, 7514, 7750, 7991, 8234, 8475, 8711, 8939, 9163, 9387, 9618, 9861, 10118, 10389, 10673, 10967, 11269, 11578, 11897, 12230, 12582, 12957, 13357, 13780, 14221, 14673, 15129 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1944, 1963, 1983, 2005, 2028, 2052, 2076, 2102, 2127, 2154, 2182, 2210, 2240, 2270, 2301, 2333, 2366, 2400, 2435, 2473, 2514, 2558, 2606, 2656, 2710, 2766, 2825, 2887, 2951, 3018, 3086, 3155, 3224, 3297, 3376, 3466, 3569, 3682, 3791, 3878, 3931, 3946, 3929, 3894, 3859, 3838, 3833, 3843, 3878, 3949, 4061, 4220, 4422, 4648, 4870, 5071, 5243, 5391, 5522, 5647, 5776, 5909, 6043, 6179, 6316, 6453 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1395, 1425, 1442, 1452, 1462, 1474, 1491, 1512, 1536, 1560, 1581, 1598, 1613, 1632, 1662, 1709, 1774, 1855, 1946, 2035, 2116, 2186, 2248, 2303, 2357, 2410, 2464, 2519, 2576, 2643, 2721, 2812, 2915, 3026, 3140, 3253, 3363, 3472, 3579, 3684, 3787, 3887, 3984, 4081, 4181, 4284, 4393, 4506, 4625, 4748, 4875, 5006, 5142, 5283, 5429, 5578, 5732, 5890, 6053, 6220, 6391, 6566, 6746, 6929, 7115, 7305 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 544113, 558820, 570765, 580887, 589956, 598574, 607168, 615992, 625156, 634650, 644450, 654625, 665427, 677333, 690932, 706591, 724490, 744366, 765571, 787191, 808511, 829368, 849788, 869475, 888133, 905580, 921688, 936555, 950537, 964155, 977837, 991554, 1005329, 1019698, 1035329, 1052622, 1071835, 1092647, 1114162, 1135128, 1154606, 1172328, 1188450, 1202983, 1216067, 1227841, 1238235, 1247259, 1255263, 1262714, 1269975, 1277189, 1284350, 1291485, 1298573, 1305601, 1312601, 1319625, 1326691, 1333807, 1340969, 1348174, 1355387, 1362514, 1369436, 1376049 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1974, 2036, 2134, 2249, 2371, 2490, 2604, 2713, 2823, 2942, 3076, 3227, 3392, 3554, 3695, 3802, 3868, 3902, 3915, 3929, 3958, 4006, 4068, 4148, 4244, 4355, 4486, 4633, 4787, 4930, 5054, 5152, 5229, 5291, 5350, 5415, 5487, 5565, 5645, 5722, 5794, 5857, 5915, 5974, 6049, 6144, 6267, 6411, 6560, 6689, 6784, 6837, 6855, 6850, 6842, 6842, 6856, 6879, 6910, 6949, 6994, 7044, 7102, 7164, 7227, 7288 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 196, 196, 194, 190, 186, 181, 177, 173, 171, 170, 171, 175, 181, 189, 198, 207, 217, 227, 237, 245, 251, 254, 254, 253, 251, 248, 246, 244, 242, 243, 246, 252, 261, 272, 284, 296, 309, 323, 336, 348, 360, 369, 378, 385, 392, 398, 405, 412, 419, 425, 432, 438, 444, 451, 459, 468, 480, 493, 507, 521, 535, 547, 558, 568, 578, 588 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 10549, 10248, 10049, 9957, 9972, 10087, 10286, 10547, 10844, 11145, 11424, 11666, 11872, 12065, 12282, 12548, 12865, 13222, 13609, 14009, 14410, 14812, 15215, 15603, 15960, 16275, 16539, 16759, 16954, 17151, 17372, 17623, 17899, 18192, 18488, 18778, 19059, 19335, 19611, 19895, 20194, 20510, 20838, 21166, 21479, 21764, 22017, 22241, 22445, 22642, 22840, 23043, 23248, 23449, 23639, 23813, 23970, 24112, 24244, 24372, 24501, 24631, 24763, 24896, 25027, 25155 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 82199, 83794, 85175, 86378, 87439, 88390, 89262, 90085, 90883, 91682, 92501, 93357, 94264, 95228, 96253, 97342, 98495, 99711, 100989, 102324, 103708, 105143, 106617, 108086, 109495, 110805, 111993, 113068, 114055, 114993, 115912, 116822, 117709, 118552, 119319, 119989, 120551, 121022, 121433, 121831, 122249, 122703, 123180, 123659, 124102, 124483, 124795, 125048, 125266, 125481, 125715, 125974, 126250, 126524, 126773, 126979, 127137, 127250, 127318, 127341, 127320, 127253, 127140, 126985, 126795, 126573 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 780, 794, 808, 823, 839, 855, 872, 890, 910, 931, 956, 982, 1011, 1042, 1075, 1107, 1140, 1173, 1207, 1242, 1279, 1317, 1357, 1397, 1438, 1480, 1521, 1562, 1604, 1646, 1690, 1733, 1778, 1823, 1871, 1922, 1976, 2033, 2090, 2141, 2184, 2218, 2244, 2263, 2280, 2298, 2317, 2336, 2356, 2376, 2397, 2420, 2444, 2469, 2497, 2526, 2558, 2593, 2630, 2670, 2713, 2759, 2808, 2859, 2910, 2959 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 19211, 19305, 19567, 19979, 20521, 21169, 21898, 22681, 23490, 24296, 25074, 25809, 26495, 27143, 27771, 28393, 29006, 29607, 30204, 30812, 31437, 32088, 32759, 33435, 34092, 34713, 35291, 35832, 36356, 36890, 37451, 38046, 38666, 39295, 39913, 40502, 41059, 41588, 42085, 42547, 42972, 43359, 43708, 44031, 44343, 44653, 44967, 45284, 45600, 45908, 46206, 46492, 46770, 47043, 47320, 47606, 47902, 48205, 48510, 48807, 49090, 49357, 49608, 49847, 50074, 50293 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7562, 7807, 8054, 8307, 8573, 8853, 9149, 9462, 9791, 10136, 10493, 10862, 11242, 11634, 12038, 12454, 12884, 13325, 13762, 14178, 14559, 14899, 15203, 15486, 15773, 16080, 16412, 16762, 17121, 17474, 17810, 18127, 18429, 18712, 18978, 19226, 19453, 19662, 19856, 20045, 20232, 20422, 20611, 20800, 20982, 21156, 21320, 21477, 21629, 21781, 21935, 22094, 22255, 22414, 22565, 22704, 22830, 22942, 23042, 23128, 23200, 23259, 23303, 23337, 23362, 23381 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 6703, 6831, 7042, 7316, 7637, 7992, 8371, 8765, 9169, 9581, 9996, 10411, 10820, 11212, 11578, 11909, 12201, 12455, 12682, 12897, 13110, 13325, 13540, 13751, 13951, 14136, 14305, 14461, 14611, 14762, 14919, 15082, 15248, 15419, 15597, 15780, 15972, 16168, 16344, 16472, 16530, 16514, 16433, 16298, 16123, 15926, 15705, 15466, 15238, 15060, 14957, 14943, 15011, 15139, 15294, 15452, 15603, 15755, 15916, 16098, 16311, 16554, 16821, 17100, 17372, 17625 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1740, 1763, 1792, 1825, 1862, 1902, 1947, 1995, 2048, 2107, 2173, 2245, 2324, 2406, 2490, 2573, 2655, 2736, 2814, 2891, 2964, 3035, 3104, 3170, 3235, 3299, 3363, 3427, 3491, 3558, 3627, 3700, 3776, 3854, 3933, 4013, 4096, 4179, 4260, 4333, 4395, 4442, 4477, 4508, 4544, 4592, 4657, 4735, 4818, 4894, 4955, 4998, 5028, 5051, 5078, 5115, 5167, 5229, 5301, 5380, 5465, 5554, 5648, 5746, 5844, 5940 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1532, 1576, 1625, 1674, 1724, 1775, 1825, 1878, 1934, 1996, 2064, 2140, 2224, 2312, 2402, 2490, 2575, 2659, 2743, 2830, 2920, 3014, 3112, 3212, 3313, 3413, 3511, 3609, 3708, 3810, 3918, 4030, 4147, 4270, 4401, 4541, 4691, 4849, 5009, 5160, 5297, 5418, 5523, 5617, 5703, 5784, 5862, 5937, 6012, 6094, 6186, 6290, 6407, 6533, 6667, 6806, 6950, 7099, 7254, 7415, 7582, 7754, 7931, 8112, 8296, 8482 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1211, 1228, 1253, 1283, 1317, 1356, 1397, 1442, 1489, 1540, 1594, 1650, 1709, 1769, 1830, 1890, 1949, 2008, 2067, 2127, 2188, 2252, 2318, 2385, 2453, 2520, 2587, 2655, 2723, 2792, 2861, 2931, 3003, 3076, 3151, 3229, 3310, 3393, 3479, 3571, 3668, 3772, 3882, 3992, 4096, 4188, 4268, 4336, 4395, 4449, 4501, 4552, 4600, 4648, 4697, 4748, 4802, 4858, 4918, 4979, 5042, 5107, 5173, 5240, 5307, 5374 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 6945, 7104, 7265, 7429, 7596, 7769, 7948, 8136, 8337, 8554, 8789, 9045, 9320, 9612, 9917, 10234, 10559, 10894, 11241, 11600, 11973, 12361, 12762, 13171, 13579, 13981, 14375, 14762, 15149, 15544, 15952, 16375, 16811, 17258, 17713, 18174, 18641, 19111, 19583, 20052, 20515, 20970, 21416, 21852, 22276, 22687, 23087, 23475, 23846, 24195, 24518, 24815, 25089, 25354, 25627, 25922, 26243, 26587, 26953, 27338, 27740, 28158, 28592, 29033, 29470, 29893 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7752, 7839, 7935, 8038, 8150, 8270, 8398, 8535, 8680, 8833, 8995, 9165, 9344, 9532, 9729, 9935, 10149, 10369, 10600, 10850, 11121, 11413, 11717, 12023, 12316, 12583, 12831, 13056, 13223, 13283, 13211, 12997, 12667, 12279, 11913, 11630, 11439, 11338, 11376, 11608, 12068, 12789, 13746, 14824, 15870, 16773, 17482, 18034, 18511, 19038, 19702, 20531, 21487, 22507, 23500, 24400, 25184, 25878, 26529, 27207, 27962, 28809, 29727, 30683, 31628, 32527 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 37895, 38707, 39493, 40302, 41170, 42122, 43170, 44315, 45547, 46848, 48201, 49594, 51031, 52533, 54129, 55835, 57676, 59625, 61586, 63423, 65049, 66417, 67578, 68658, 69838, 71247, 72930, 74848, 76948, 79142, 81364, 83600, 85868, 88181, 90560, 93015, 95551, 98149, 100780, 103401, 105983, 108510, 110987, 113442, 115914, 118428, 120987, 123574, 126170, 128746, 131281, 133776, 136228, 138600, 140844, 142930, 144839, 146593, 148252, 149906, 151617, 153406, 155257, 157157, 159078, 160996 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 177, 181, 186, 191, 195, 200, 205, 209, 214, 219, 224, 229, 235, 240, 246, 253, 259, 266, 274, 282, 291, 302, 313, 324, 337, 349, 362, 375, 388, 400, 413, 424, 434, 445, 456, 469, 484, 501, 517, 529, 536, 535, 528, 519, 511, 509, 512, 521, 534, 548, 564, 581, 598, 616, 634, 651, 667, 681, 695, 708, 720, 732, 744, 755, 765, 775 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 376325, 382231, 388516, 395138, 402066, 409280, 416772, 424542, 432601, 440969, 449662, 458691, 468054, 477730, 487690, 497920, 508403, 519162, 530275, 541845, 553943, 566605, 579801, 593452, 607447, 621704, 636183, 650908, 665936, 681359, 697230, 713561, 730303, 747375, 764664, 782085, 799607, 817232, 834944, 852736, 870602, 888514, 906461, 924476, 942604, 960875, 979290, 997817, 1016403, 1034977, 1053481, 1071888, 1090189, 1108370, 1126419, 1144326, 1162088, 1179686, 1197070, 1214182, 1230985, 1247446, 1263590, 1279499, 1295292, 1311051 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 17119, 17517, 17933, 18369, 18823, 19294, 19783, 20288, 20811, 21351, 21907, 22480, 23071, 23680, 24308, 24955, 25625, 26318, 27033, 27765, 28514, 29281, 30074, 30904, 31785, 32731, 33739, 34814, 35978, 37257, 38668, 40209, 41862, 43611, 45429, 47291, 49206, 51152, 53036, 54735, 56169, 57288, 58130, 58812, 59501, 60319, 61307, 62426, 63616, 64780, 65850, 66813, 67697, 68522, 69322, 70122, 70923, 71721, 72531, 73371, 74253, 75184, 76157, 77152, 78144, 79109 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 74, 74, 75, 76, 78, 80, 82, 83, 85, 88, 90, 92, 95, 98, 100, 103, 105, 107, 110, 113, 116, 119, 123, 128, 132, 136, 141, 145, 149, 153, 158, 164, 170, 176, 183, 190, 196, 203, 210, 217, 223, 230, 236, 242, 248, 254, 260, 265, 270, 275, 280, 285, 290, 295, 300, 305, 310, 316, 321, 327, 333, 339, 345, 351, 357, 364 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 8483, 8658, 8823, 8982, 9137, 9290, 9442, 9594, 9747, 9901, 10057, 10215, 10377, 10545, 10720, 10905, 11101, 11307, 11524, 11751, 11987, 12232, 12488, 12753, 13028, 13313, 13609, 13914, 14229, 14554, 14890, 15237, 15596, 15964, 16337, 16714, 17092, 17472, 17865, 18285, 18742, 19237, 19766, 20313, 20859, 21391, 21903, 22395, 22866, 23315, 23740, 24141, 24517, 24869, 25198, 25507, 25794, 26064, 26325, 26593, 26876, 27179, 27501, 27835, 28175, 28514 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 37542, 37976, 38485, 39066, 39714, 40427, 41203, 42040, 42937, 43894, 44912, 45988, 47123, 48313, 49555, 50849, 52195, 53594, 55046, 56546, 58094, 59690, 61341, 63062, 64874, 66791, 68818, 70954, 73204, 75576, 78072, 80692, 83428, 86265, 89183, 92165, 95207, 98302, 101421, 104531, 107608, 110634, 113616, 116580, 119565, 122600, 125698, 128846, 132014, 135158, 138250, 141282, 144272, 147252, 150268, 153356, 156524, 159768, 163097, 166521, 170044, 173670, 177392, 181193, 185044, 188925 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 8076, 8202, 8339, 8489, 8654, 8833, 9025, 9230, 9445, 9667, 9896, 10129, 10366, 10609, 10859, 11118, 11386, 11662, 11941, 12217, 12487, 12749, 13003, 13253, 13503, 13756, 14014, 14274, 14534, 14789, 15037, 15274, 15503, 15728, 15952, 16181, 16414, 16649, 16883, 17112, 17331, 17541, 17742, 17930, 18100, 18248, 18374, 18478, 18572, 18671, 18784, 18915, 19061, 19217, 19374, 19526, 19672, 19814, 19950, 20079, 20201, 20316, 20422, 20522, 20619, 20715 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 48, 51, 54, 57, 60, 63, 67, 70, 74, 78, 82, 86, 90, 94, 98, 103, 107, 113, 118, 124, 130, 136, 142, 148, 154, 161, 167, 174, 180, 187, 193, 199, 205, 211, 217, 223, 229, 236, 243, 250, 257, 264, 272, 280, 287, 295, 302, 310, 317, 324, 331, 337, 343, 350, 356, 362, 368, 374, 381, 387, 393, 399, 406, 411, 417, 423 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 4433, 4540, 4659, 4785, 4914, 5045, 5176, 5308, 5441, 5579, 5722, 5872, 6027, 6181, 6329, 6467, 6589, 6695, 6796, 6902, 7022, 7168, 7331, 7478, 7562, 7552, 7432, 7222, 6983, 6795, 6718, 6775, 6945, 7196, 7475, 7743, 7990, 8228, 8467, 8724, 9009, 9324, 9659, 10007, 10355, 10694, 11022, 11339, 11642, 11928, 12198, 12449, 12682, 12901, 13112, 13320, 13525, 13729, 13934, 14144, 14364, 14593, 14832, 15079, 15328, 15578 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 69543, 70870, 72310, 73867, 75540, 77328, 79227, 81231, 83332, 85522, 87793, 90138, 92558, 95056, 97638, 100309, 103067, 105907, 108822, 111800, 114835, 117922, 121060, 124242, 127465, 130724, 134011, 137322, 140666, 144054, 147490, 150979, 154506, 158044, 161556, 165012, 168402, 171729, 175001, 178233, 181437, 184615, 187762, 190873, 193940, 196958, 199927, 202854, 205753, 208644, 211540, 214448, 217369, 220308, 223269, 226255, 229264, 232297, 235361, 238465, 241613, 244808, 248038, 251268, 254455, 257564 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1683, 1723, 1764, 1805, 1847, 1890, 1934, 1979, 2025, 2072, 2120, 2169, 2220, 2272, 2326, 2381, 2438, 2495, 2555, 2618, 2686, 2760, 2838, 2916, 2988, 3048, 3095, 3131, 3164, 3202, 3253, 3318, 3395, 3483, 3579, 3680, 3785, 3895, 4009, 4127, 4248, 4372, 4497, 4622, 4743, 4858, 4966, 5069, 5165, 5256, 5343, 5425, 5502, 5579, 5659, 5745, 5839, 5940, 6045, 6153, 6261, 6367, 6473, 6580, 6689, 6802 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 6110, 6262, 6433, 6618, 6813, 7016, 7226, 7443, 7669, 7908, 8161, 8429, 8711, 8999, 9287, 9570, 9844, 10112, 10376, 10640, 10909, 11182, 11460, 11742, 12026, 12312, 12600, 12892, 13192, 13504, 13834, 14180, 14544, 14927, 15333, 15764, 16222, 16704, 17202, 17707, 18211, 18710, 19205, 19701, 20206, 20725, 21261, 21808, 22358, 22899, 23421, 23921, 24402, 24869, 25332, 25796, 26263, 26731, 27197, 27661, 28120, 28573, 29022, 29465, 29902, 30331 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 17527, 17850, 18182, 18529, 18895, 19282, 19690, 20118, 20562, 21019, 21486, 21962, 22447, 22947, 23471, 24024, 24607, 25218, 25853, 26504, 27166, 27837, 28517, 29210, 29917, 30641, 31379, 32131, 32896, 33676, 34471, 35280, 36099, 36918, 37725, 38509, 39269, 40005, 40711, 41380, 42007, 42588, 43126, 43642, 44164, 44711, 45291, 45896, 46510, 47107, 47670, 48196, 48690, 49152, 49583, 49985, 50356, 50699, 51030, 51370, 51733, 52125, 52544, 52984, 53437, 53897 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 18580, 19247, 19946, 20671, 21416, 22179, 22958, 23755, 24570, 25409, 26273, 27165, 28081, 29017, 29963, 30914, 31868, 32827, 33797, 34788, 35805, 36851, 37925, 39026, 40150, 41295, 42461, 43650, 44866, 46114, 47397, 48716, 50068, 51455, 52874, 54324, 55804, 57313, 58844, 60391, 61947, 63510, 65079, 66655, 68240, 69836, 71437, 73043, 74656, 76285, 77932, 79605, 81294, 82972, 84596, 86141, 87593, 88966, 90297, 91642, 93039, 94501, 96017, 97572, 99139, 100699 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1022, 1068, 1120, 1178, 1240, 1306, 1373, 1441, 1508, 1573, 1634, 1690, 1742, 1791, 1836, 1880, 1921, 1961, 1999, 2036, 2074, 2113, 2153, 2192, 2229, 2262, 2292, 2318, 2344, 2375, 2415, 2463, 2520, 2583, 2647, 2709, 2767, 2823, 2880, 2944, 3016, 3100, 3193, 3291, 3389, 3483, 3570, 3653, 3736, 3823, 3918, 4023, 4136, 4255, 4375, 4496, 4615, 4733, 4850, 4965, 5079, 5191, 5300, 5405, 5507, 5604 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 20710, 21263, 21838, 22437, 23060, 23711, 24390, 25097, 25834, 26600, 27397, 28224, 29081, 29967, 30881, 31823, 32789, 33779, 34791, 35827, 36885, 37965, 39062, 40165, 41260, 42335, 43387, 44416, 45423, 46412, 47385, 48337, 49266, 50183, 51105, 52041, 53003, 53980, 54934, 55813, 56583, 57226, 57762, 58238, 58723, 59266, 59879, 60545, 61251, 61974, 62693, 63415, 64137, 64817, 65405, 65864, 66174, 66354, 66453, 66548, 66692, 66903, 67164, 67451, 67726, 67959 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 433, 438, 443, 449, 455, 461, 468, 475, 483, 491, 500, 508, 517, 527, 537, 547, 557, 567, 578, 590, 603, 619, 636, 652, 662, 662, 650, 630, 606, 587, 578, 581, 594, 614, 637, 657, 674, 689, 704, 720, 740, 765, 793, 820, 843, 856, 859, 854, 845, 841, 847, 866, 895, 929, 963, 989, 1008, 1021, 1031, 1042, 1057, 1078, 1102, 1129, 1157, 1185 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 24810, 25364, 25977, 26646, 27371, 28148, 28974, 29845, 30755, 31698, 32671, 33667, 34684, 35722, 36781, 37860, 38959, 40075, 41196, 42310, 43407, 44486, 45549, 46605, 47662, 48729, 49808, 50900, 52015, 53170, 54373, 55628, 56932, 58277, 59653, 61049, 62460, 63881, 65314, 66757, 68210, 69671, 71130, 72559, 73924, 75199, 76376, 77460, 78463, 79400, 80286, 81124, 81917, 82683, 83440, 84204, 84980, 85771, 86589, 87449, 88358, 89322, 90336, 91379, 92423, 93448 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1354, 1383, 1420, 1463, 1511, 1564, 1619, 1678, 1739, 1802, 1867, 1934, 2002, 2070, 2138, 2205, 2269, 2333, 2395, 2456, 2518, 2581, 2643, 2706, 2766, 2826, 2883, 2938, 2992, 3045, 3096, 3146, 3193, 3239, 3288, 3339, 3397, 3457, 3510, 3543, 3545, 3512, 3449, 3370, 3290, 3223, 3173, 3138, 3113, 3094, 3076, 3060, 3047, 3036, 3026, 3015, 3002, 2988, 2975, 2966, 2963, 2968, 2978, 2992, 3006, 3018 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2896, 2965, 3045, 3134, 3228, 3328, 3432, 3540, 3653, 3772, 3898, 4030, 4168, 4307, 4446, 4580, 4708, 4832, 4951, 5066, 5178, 5287, 5393, 5496, 5596, 5694, 5789, 5882, 5975, 6069, 6164, 6262, 6362, 6465, 6569, 6674, 6780, 6886, 6994, 7104, 7217, 7333, 7451, 7567, 7675, 7771, 7852, 7922, 7985, 8048, 8118, 8196, 8281, 8372, 8466, 8563, 8662, 8763, 8869, 8980, 9100, 9228, 9361, 9497, 9630, 9754 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 116, 117, 120, 124, 128, 134, 139, 145, 151, 157, 163, 168, 173, 178, 183, 187, 192, 196, 201, 206, 213, 221, 230, 240, 252, 267, 284, 303, 324, 343, 360, 374, 386, 396, 407, 419, 433, 449, 465, 481, 496, 510, 523, 536, 549, 564, 580, 598, 618, 641, 667, 695, 725, 762, 808, 867, 941, 1027, 1116, 1197, 1261, 1306, 1334, 1349, 1362, 1377 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 494, 500, 507, 513, 521, 530, 540, 549, 559, 567, 573, 576, 578, 578, 579, 581, 585, 591, 598, 606, 614, 621, 628, 635, 642, 650, 658, 666, 673, 680, 685, 689, 692, 694, 698, 704, 712, 723, 736, 751, 767, 783, 801, 819, 837, 855, 873, 891, 908, 925, 943, 961, 980, 998, 1016, 1033, 1048, 1063, 1077, 1090, 1104, 1117, 1129, 1142, 1154, 1165 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3527, 3585, 3646, 3710, 3775, 3839, 3904, 3967, 4031, 4095, 4160, 4226, 4292, 4357, 4420, 4477, 4530, 4578, 4622, 4665, 4707, 4750, 4791, 4833, 4872, 4908, 4942, 4974, 5005, 5037, 5073, 5112, 5152, 5194, 5239, 5287, 5340, 5395, 5442, 5467, 5460, 5418, 5346, 5253, 5156, 5067, 4990, 4921, 4860, 4802, 4744, 4686, 4630, 4576, 4524, 4475, 4429, 4386, 4343, 4299, 4250, 4196, 4139, 4083, 4035, 4000 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 5719, 5902, 6065, 6216, 6360, 6503, 6647, 6795, 6951, 7116, 7290, 7475, 7674, 7889, 8122, 8376, 8651, 8947, 9261, 9586, 9918, 10256, 10600, 10951, 11312, 11685, 12068, 12461, 12859, 13258, 13653, 14046, 14438, 14825, 15205, 15576, 15938, 16294, 16658, 17048, 17478, 17953, 18469, 19022, 19607, 20218, 20855, 21519, 22201, 22889, 23575, 24259, 24944, 25630, 26321, 27018, 27717, 28424, 29163, 29971, 30868, 31868, 32958, 34107, 35273, 36423 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1258, 1354, 1451, 1546, 1636, 1719, 1796, 1869, 1939, 2012, 2090, 2174, 2264, 2356, 2443, 2523, 2592, 2653, 2711, 2775, 2850, 2937, 3034, 3137, 3240, 3337, 3428, 3514, 3594, 3671, 3745, 3815, 3884, 3950, 4016, 4083, 4149, 4216, 4291, 4383, 4499, 4642, 4807, 4986, 5164, 5332, 5486, 5630, 5764, 5891, 6014, 6130, 6240, 6351, 6470, 6604, 6755, 6921, 7094, 7263, 7420, 7563, 7695, 7818, 7939, 8064 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 449, 503, 542, 575, 608, 646, 690, 739, 792, 843, 889, 928, 963, 1001, 1051, 1120, 1211, 1320, 1439, 1554, 1655, 1740, 1812, 1874, 1930, 1985, 2039, 2092, 2147, 2209, 2281, 2366, 2463, 2569, 2677, 2783, 2884, 2982, 3087, 3209, 3358, 3539, 3744, 3957, 4155, 4320, 4448, 4545, 4621, 4691, 4767, 4850, 4939, 5043, 5172, 5333, 5530, 5759, 6010, 6267, 6518, 6760, 6994, 7215, 7416, 7595 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 152, 164, 174, 182, 189, 195, 201, 209, 220, 238, 262, 295, 335, 382, 431, 482, 534, 586, 639, 694, 750, 808, 867, 927, 988, 1051, 1115, 1181, 1248, 1315, 1384, 1452, 1519, 1586, 1658, 1735, 1823, 1918, 2003, 2054, 2059, 2007, 1909, 1792, 1692, 1637, 1638, 1686, 1766, 1853, 1929, 1990, 2042, 2096, 2166, 2264, 2389, 2539, 2705, 2881, 3059, 3239, 3420, 3594, 3753, 3892 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1335, 1358, 1393, 1435, 1482, 1532, 1584, 1637, 1691, 1747, 1805, 1865, 1925, 1985, 2041, 2092, 2137, 2175, 2211, 2251, 2297, 2354, 2417, 2480, 2536, 2576, 2598, 2606, 2605, 2603, 2605, 2616, 2632, 2651, 2667, 2677, 2677, 2672, 2669, 2677, 2703, 2752, 2822, 2901, 2975, 3033, 3071, 3093, 3114, 3157, 3235, 3360, 3523, 3701, 3863, 3987, 4057, 4085, 4109, 4182, 4337, 4592, 4924, 5287, 5612, 5851 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 456, 462, 469, 477, 486, 496, 506, 516, 528, 539, 552, 565, 579, 594, 609, 625, 642, 660, 680, 701, 724, 749, 776, 807, 842, 882, 927, 978, 1033, 1092, 1154, 1221, 1290, 1361, 1431, 1498, 1561, 1621, 1679, 1742, 1812, 1892, 1980, 2066, 2140, 2192, 2220, 2228, 2225, 2225, 2239, 2273, 2323, 2385, 2448, 2507, 2553, 2594, 2652, 2762, 2944, 3210, 3545, 3907, 4236, 4491 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 25, 27, 30, 32, 34, 36, 38, 39, 41, 44, 47, 51, 56, 62, 67, 74, 80, 86, 93, 101, 109, 119, 130, 142, 154, 164, 174, 182, 192, 205, 224, 248, 277, 309, 341, 371, 398, 423, 445, 463, 476, 485, 490, 492, 495, 501, 512, 528, 549, 571, 593, 614, 634, 668, 732, 837, 988, 1179, 1389, 1591, 1766, 1905, 2016, 2101, 2172, 2235 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3121, 3199, 3283, 3373, 3465, 3558, 3654, 3752, 3855, 3966, 4087, 4219, 4363, 4517, 4677, 4844, 5016, 5196, 5390, 5602, 5836, 6096, 6382, 6697, 7045, 7429, 7845, 8295, 8785, 9323, 9913, 10557, 11247, 11962, 12674, 13361, 14017, 14642, 15239, 15811, 16361, 16891, 17399, 17891, 18373, 18854, 19331, 19810, 20302, 20826, 21392, 22008, 22668, 23358, 24056, 24745, 25420, 26084, 26743, 27409, 28091, 28788, 29496, 30201, 30887, 31540 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 932, 924, 932, 949, 969, 988, 1004, 1019, 1032, 1048, 1069, 1097, 1129, 1160, 1182, 1192, 1185, 1165, 1141, 1125, 1125, 1144, 1180, 1227, 1276, 1322, 1362, 1398, 1433, 1470, 1509, 1553, 1600, 1650, 1703, 1759, 1817, 1879, 1946, 2019, 2101, 2191, 2287, 2391, 2502, 2618, 2742, 2872, 3000, 3120, 3224, 3310, 3381, 3443, 3507, 3579, 3663, 3755, 3855, 3960, 4069, 4181, 4298, 4418, 4542, 4668 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3413, 3501, 3595, 3697, 3806, 3922, 4044, 4173, 4308, 4448, 4593, 4743, 4897, 5058, 5225, 5398, 5579, 5767, 5963, 6167, 6379, 6599, 6829, 7066, 7312, 7564, 7823, 8088, 8363, 8652, 8956, 9277, 9614, 9961, 10313, 10667, 11021, 11375, 11730, 12089, 12452, 12818, 13186, 13560, 13941, 14332, 14736, 15152, 15569, 15972, 16354, 16694, 16998, 17304, 17672, 18133, 18728, 19426, 20097, 20567, 20721, 20501, 19979, 19323, 18772, 18502 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 21238, 21806, 22394, 22999, 23619, 24253, 24898, 25552, 26214, 26881, 27553, 28229, 28910, 29597, 30293, 31000, 31718, 32448, 33196, 33969, 34772, 35608, 36475, 37367, 38273, 39186, 40101, 41020, 41953, 42912, 43906, 44937, 45998, 47073, 48138, 49178, 50187, 51169, 52126, 53067, 53995, 54910, 55811, 56707, 57609, 58522, 59451, 60394, 61345, 62296, 63240, 64183, 65126, 66060, 66974, 67861, 68705, 69515, 70344, 71261, 72310, 73517, 74849, 76224, 77524, 78666 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 70, 68, 70, 73, 77, 80, 82, 83, 84, 87, 93, 101, 112, 125, 138, 150, 161, 172, 185, 206, 235, 275, 324, 383, 452, 531, 622, 723, 827, 927, 1017, 1093, 1158, 1218, 1280, 1350, 1431, 1519, 1614, 1712, 1811, 1913, 2019, 2128, 2238, 2350, 2468, 2595, 2734, 2884, 3050, 3218, 3394, 3626, 3976, 4482, 5171, 6010, 6900, 7705, 8329, 8735, 8953, 9040, 9086, 9157 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 4402, 4474, 4546, 4619, 4693, 4768, 4844, 4922, 5002, 5083, 5166, 5252, 5339, 5430, 5523, 5619, 5721, 5827, 5937, 6047, 6156, 6263, 6371, 6488, 6626, 6794, 6995, 7227, 7486, 7765, 8059, 8370, 8698, 9043, 9402, 9774, 10154, 10543, 10959, 11427, 11961, 12571, 13245, 13948, 14633, 15266, 15835, 16350, 16830, 17304, 17795, 18306, 18832, 19374, 19932, 20504, 21094, 21701, 22323, 22954, 23592, 24235, 24883, 25533, 26184, 26832 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7745, 7718, 7711, 7724, 7756, 7804, 7866, 7939, 8019, 8104, 8190, 8274, 8357, 8439, 8521, 8607, 8695, 8785, 8874, 8959, 9039, 9113, 9182, 9246, 9306, 9366, 9423, 9479, 9535, 9593, 9654, 9720, 9788, 9857, 9925, 9991, 10054, 10113, 10166, 10206, 10232, 10241, 10235, 10216, 10190, 10160, 10127, 10091, 10051, 10005, 9952, 9892, 9826, 9759, 9696, 9641, 9594, 9556, 9526, 9505, 9492, 9488, 9491, 9497, 9500, 9496 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7251, 7304, 7360, 7419, 7479, 7541, 7604, 7668, 7733, 7799, 7866, 7935, 8004, 8073, 8141, 8207, 8269, 8329, 8386, 8441, 8495, 8547, 8597, 8644, 8688, 8727, 8761, 8790, 8816, 8840, 8865, 8891, 8917, 8939, 8955, 8960, 8957, 8944, 8919, 8878, 8821, 8745, 8654, 8552, 8452, 8358, 8275, 8200, 8132, 8066, 8001, 7934, 7869, 7805, 7743, 7683, 7625, 7568, 7514, 7460, 7407, 7355, 7304, 7253, 7201, 7150 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 8903, 9005, 9106, 9200, 9283, 9353, 9410, 9457, 9497, 9536, 9579, 9627, 9679, 9731, 9773, 9801, 9812, 9809, 9801, 9799, 9811, 9840, 9883, 9937, 9996, 10058, 10122, 10189, 10251, 10303, 10338, 10354, 10353, 10340, 10326, 10316, 10311, 10311, 10315, 10319, 10324, 10328, 10334, 10338, 10339, 10336, 10327, 10314, 10298, 10281, 10263, 10244, 10225, 10212, 10212, 10231, 10271, 10330, 10398, 10460, 10507, 10534, 10545, 10545, 10543, 10543 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 9338, 9478, 9595, 9691, 9768, 9829, 9877, 9914, 9945, 9973, 10001, 10031, 10065, 10100, 10136, 10170, 10205, 10239, 10274, 10309, 10346, 10382, 10417, 10455, 10495, 10541, 10594, 10651, 10704, 10743, 10759, 10750, 10720, 10674, 10623, 10573, 10527, 10482, 10443, 10410, 10385, 10370, 10365, 10364, 10361, 10352, 10335, 10311, 10283, 10253, 10224, 10196, 10168, 10141, 10117, 10096, 10078, 10064, 10051, 10035, 10015, 9989, 9958, 9925, 9890, 9855 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 24824, 25264, 25738, 26237, 26750, 27270, 27788, 28298, 28792, 29267, 29716, 30138, 30531, 30894, 31229, 31540, 31824, 32085, 32331, 32572, 32817, 33069, 33329, 33598, 33877, 34168, 34469, 34779, 35101, 35436, 35783, 36145, 36517, 36880, 37209, 37486, 37704, 37867, 37991, 38095, 38195, 38298, 38397, 38486, 38553, 38592, 38600, 38583, 38551, 38515, 38486, 38467, 38455, 38451, 38455, 38464, 38479, 38500, 38526, 38551, 38575, 38594, 38609, 38619, 38620, 38612 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2341, 2381, 2432, 2491, 2557, 2627, 2701, 2777, 2853, 2929, 3004, 3076, 3146, 3212, 3275, 3336, 3392, 3445, 3495, 3545, 3595, 3646, 3697, 3748, 3796, 3839, 3877, 3911, 3942, 3975, 4010, 4049, 4090, 4132, 4175, 4215, 4253, 4289, 4321, 4346, 4364, 4374, 4375, 4370, 4357, 4339, 4315, 4285, 4253, 4224, 4201, 4186, 4177, 4172, 4166, 4158, 4145, 4128, 4111, 4096, 4084, 4078, 4075, 4074, 4072, 4069 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 16236, 16513, 16765, 17006, 17244, 17484, 17727, 17968, 18203, 18420, 18614, 18780, 18924, 19060, 19207, 19380, 19582, 19811, 20056, 20305, 20549, 20784, 21012, 21234, 21451, 21666, 21878, 22084, 22279, 22457, 22612, 22740, 22842, 22929, 23013, 23104, 23205, 23312, 23408, 23473, 23489, 23454, 23373, 23256, 23116, 22965, 22805, 22633, 22459, 22289, 22128, 21983, 21852, 21723, 21578, 21408, 21206, 20980, 20742, 20510, 20299, 20112, 19945, 19794, 19652, 19511 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 102799, 104306, 105969, 107730, 109538, 111355, 113152, 114910, 116616, 118267, 119860, 121390, 122843, 124193, 125412, 126484, 127396, 128166, 128838, 129475, 130126, 130808, 131518, 132254, 133013, 133788, 134584, 135407, 136260, 137145, 138063, 139007, 139969, 140951, 141955, 142976, 144016, 145056, 146040, 146895, 147569, 148040, 148322, 148436, 148416, 148293, 148078, 147773, 147385, 146924, 146401, 145818, 145196, 144583, 144044, 143623, 143338, 143180, 143123, 143127, 143158, 143211, 143288, 143367, 143429, 143457 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3437, 3510, 3586, 3663, 3739, 3813, 3884, 3952, 4017, 4079, 4137, 4193, 4246, 4295, 4339, 4379, 4413, 4443, 4471, 4500, 4532, 4568, 4608, 4651, 4697, 4744, 4794, 4844, 4895, 4944, 4989, 5029, 5066, 5099, 5129, 5158, 5185, 5210, 5234, 5256, 5278, 5298, 5317, 5335, 5351, 5363, 5372, 5378, 5383, 5385, 5386, 5386, 5385, 5385, 5384, 5385, 5388, 5392, 5397, 5402, 5407, 5411, 5415, 5419, 5423, 5426 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 37298, 37816, 38361, 38916, 39472, 40019, 40557, 41084, 41606, 42130, 42662, 43204, 43749, 44286, 44794, 45262, 45682, 46060, 46409, 46747, 47087, 47434, 47783, 48127, 48455, 48759, 49036, 49290, 49526, 49750, 49969, 50182, 50386, 50579, 50759, 50921, 51064, 51186, 51281, 51344, 51370, 51361, 51314, 51217, 51053, 50812, 50490, 50096, 49655, 49197, 48746, 48311, 47891, 47494, 47127, 46795, 46503, 46249, 46028, 45831, 45647, 45478, 45320, 45165, 45002, 44824 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 102, 103, 104, 104, 105, 106, 106, 107, 108, 109, 109, 110, 111, 113, 114, 115, 116, 117, 119, 120, 121, 122, 124, 125, 126, 126, 127, 127, 127, 128, 128, 129, 130, 131, 132, 134, 135, 137, 138, 140, 141, 142, 142, 143, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 159, 160, 160, 161, 162, 163, 164 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 4268, 4308, 4345, 4379, 4410, 4440, 4467, 4494, 4522, 4550, 4581, 4614, 4649, 4686, 4723, 4760, 4796, 4831, 4865, 4898, 4930, 4960, 4989, 5016, 5040, 5061, 5080, 5096, 5109, 5118, 5123, 5125, 5123, 5119, 5115, 5113, 5114, 5116, 5122, 5129, 5140, 5154, 5171, 5191, 5211, 5233, 5254, 5277, 5299, 5319, 5338, 5355, 5369, 5383, 5399, 5418, 5441, 5467, 5495, 5524, 5551, 5577, 5601, 5624, 5647, 5669 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1101, 1113, 1125, 1137, 1148, 1159, 1170, 1181, 1192, 1204, 1217, 1231, 1245, 1260, 1275, 1290, 1305, 1319, 1333, 1347, 1360, 1373, 1386, 1398, 1410, 1422, 1433, 1444, 1454, 1464, 1474, 1484, 1493, 1501, 1511, 1522, 1536, 1551, 1564, 1570, 1565, 1548, 1521, 1488, 1457, 1433, 1418, 1410, 1406, 1404, 1399, 1392, 1383, 1373, 1364, 1356, 1349, 1344, 1340, 1336, 1332, 1328, 1324, 1320, 1316, 1313 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 32, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 36, 37, 37, 38, 38, 39, 39, 39, 40, 40, 41, 41, 41, 42, 42, 43, 44, 44, 45, 45, 46, 47, 47, 48, 48, 48, 47, 47, 46, 45, 44, 44, 44, 45, 46, 46, 47, 47, 48, 48, 48, 49, 49, 49, 49, 49, 48, 48, 48, 48, 48 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 4008, 4050, 4095, 4142, 4190, 4235, 4279, 4320, 4359, 4395, 4430, 4463, 4495, 4523, 4546, 4565, 4577, 4584, 4589, 4596, 4607, 4623, 4645, 4669, 4692, 4711, 4727, 4739, 4750, 4763, 4779, 4801, 4826, 4853, 4879, 4902, 4921, 4937, 4952, 4968, 4987, 5009, 5035, 5061, 5086, 5108, 5126, 5141, 5153, 5165, 5176, 5188, 5201, 5214, 5229, 5246, 5267, 5289, 5314, 5340, 5368, 5396, 5425, 5453, 5480, 5503 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 143, 145, 148, 151, 154, 158, 161, 165, 168, 172, 176, 179, 183, 186, 189, 192, 195, 197, 200, 202, 204, 207, 210, 213, 215, 218, 220, 222, 224, 226, 228, 231, 233, 236, 239, 241, 244, 247, 250, 252, 255, 257, 260, 262, 265, 267, 270, 273, 276, 278, 281, 284, 287, 290, 293, 297, 301, 305, 310, 314, 318, 321, 323, 325, 327, 329 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2913, 2921, 2924, 2921, 2913, 2899, 2882, 2862, 2844, 2829, 2819, 2817, 2822, 2832, 2844, 2857, 2869, 2882, 2898, 2919, 2947, 2984, 3028, 3076, 3128, 3181, 3234, 3288, 3339, 3388, 3431, 3469, 3501, 3527, 3547, 3560, 3566, 3566, 3563, 3561, 3563, 3570, 3582, 3599, 3621, 3645, 3674, 3706, 3744, 3789, 3842, 3902, 3968, 4041, 4120, 4204, 4294, 4389, 4480, 4559, 4617, 4653, 4668, 4671, 4675, 4688 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 55, 55, 55, 54, 53, 52, 51, 50, 50, 49, 48, 48, 49, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 59, 60, 61, 62, 63, 64, 65, 65, 65, 65, 64, 64, 64, 65, 66, 68, 69, 70, 71, 71, 71, 72, 72, 73, 74, 75, 76, 77, 78, 78, 79, 80, 80, 81, 82, 83, 84, 84, 85, 86, 86, 87, 88 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1949, 1955, 1965, 1979, 1996, 2015, 2036, 2058, 2082, 2107, 2132, 2159, 2185, 2211, 2237, 2261, 2284, 2306, 2326, 2346, 2366, 2386, 2405, 2424, 2442, 2457, 2470, 2482, 2492, 2502, 2513, 2525, 2536, 2549, 2564, 2582, 2604, 2630, 2653, 2666, 2664, 2645, 2611, 2569, 2525, 2488, 2458, 2435, 2415, 2395, 2371, 2345, 2317, 2287, 2257, 2228, 2199, 2171, 2144, 2117, 2091, 2064, 2037, 2012, 1989, 1971 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2567, 2570, 2579, 2592, 2609, 2630, 2652, 2678, 2706, 2737, 2771, 2808, 2847, 2888, 2928, 2967, 3004, 3038, 3071, 3104, 3137, 3171, 3204, 3238, 3270, 3300, 3328, 3355, 3381, 3406, 3432, 3457, 3482, 3508, 3535, 3564, 3595, 3629, 3660, 3684, 3697, 3699, 3691, 3674, 3652, 3628, 3602, 3574, 3545, 3515, 3486, 3459, 3433, 3406, 3377, 3343, 3306, 3264, 3220, 3172, 3123, 3071, 3016, 2964, 2917, 2878 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3265, 3300, 3334, 3366, 3398, 3429, 3461, 3492, 3522, 3553, 3582, 3611, 3639, 3667, 3695, 3724, 3754, 3785, 3815, 3846, 3876, 3905, 3933, 3960, 3984, 4006, 4025, 4042, 4056, 4070, 4083, 4095, 4108, 4120, 4134, 4148, 4164, 4181, 4200, 4220, 4240, 4262, 4286, 4310, 4334, 4360, 4386, 4413, 4440, 4466, 4492, 4515, 4537, 4561, 4589, 4624, 4667, 4717, 4772, 4830, 4891, 4954, 5018, 5083, 5148, 5211 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7010, 7072, 7126, 7173, 7217, 7260, 7302, 7344, 7388, 7433, 7480, 7527, 7576, 7628, 7683, 7741, 7804, 7871, 7937, 7997, 8049, 8090, 8122, 8146, 8169, 8193, 8219, 8246, 8272, 8295, 8311, 8320, 8323, 8326, 8334, 8351, 8378, 8414, 8457, 8506, 8559, 8617, 8678, 8738, 8789, 8827, 8849, 8859, 8861, 8864, 8872, 8889, 8912, 8943, 8982, 9030, 9087, 9153, 9226, 9303, 9382, 9462, 9543, 9624, 9703, 9779 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 50616, 50621, 50684, 50793, 50938, 51114, 51316, 51544, 51800, 52088, 52410, 52766, 53147, 53538, 53920, 54278, 54607, 54905, 55171, 55406, 55611, 55785, 55927, 56039, 56122, 56180, 56213, 56225, 56224, 56220, 56222, 56231, 56250, 56284, 56338, 56415, 56519, 56649, 56798, 56954, 57110, 57265, 57419, 57576, 57737, 57904, 58079, 58264, 58457, 58658, 58867, 59080, 59301, 59548, 59846, 60210, 60649, 61152, 61690, 62221, 62717, 63165, 63574, 63956, 64331, 64716 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1263, 1287, 1316, 1348, 1383, 1420, 1459, 1500, 1543, 1588, 1636, 1686, 1738, 1791, 1844, 1896, 1948, 1999, 2049, 2100, 2151, 2202, 2254, 2306, 2358, 2411, 2464, 2518, 2572, 2626, 2681, 2735, 2788, 2843, 2902, 2967, 3041, 3121, 3197, 3254, 3281, 3275, 3241, 3190, 3141, 3107, 3092, 3092, 3103, 3115, 3122, 3124, 3123, 3117, 3104, 3082, 3051, 3011, 2968, 2930, 2902, 2886, 2881, 2883, 2890, 2897 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 6, 7, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 43, 45, 47, 48, 50, 52, 55, 57, 59, 61, 63, 64, 64, 64, 64, 64, 65, 68, 71, 75, 78, 81, 83, 85, 86, 85, 84, 82, 79, 76, 73, 70 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2661, 2710, 2763, 2819, 2876, 2932, 2987, 3042, 3098, 3155, 3215, 3277, 3342, 3406, 3468, 3525, 3575, 3620, 3662, 3703, 3746, 3791, 3838, 3885, 3930, 3972, 4008, 4042, 4073, 4107, 4145, 4185, 4227, 4271, 4318, 4370, 4428, 4492, 4543, 4559, 4527, 4438, 4301, 4141, 3992, 3879, 3811, 3779, 3776, 3784, 3793, 3800, 3808, 3817, 3826, 3833, 3839, 3840, 3840, 3838, 3835, 3832, 3828, 3824, 3818, 3810 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3850, 3886, 3923, 3959, 3995, 4030, 4065, 4098, 4130, 4162, 4193, 4223, 4251, 4279, 4305, 4329, 4351, 4371, 4389, 4407, 4423, 4439, 4454, 4469, 4485, 4501, 4518, 4536, 4555, 4576, 4598, 4621, 4645, 4670, 4693, 4716, 4738, 4758, 4774, 4781, 4776, 4760, 4733, 4698, 4658, 4617, 4575, 4532, 4492, 4456, 4428, 4408, 4397, 4390, 4385, 4378, 4369, 4357, 4344, 4330, 4316, 4302, 4287, 4271, 4256, 4240 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, 32, 32, 32 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7566, 7635, 7706, 7779, 7856, 7935, 8016, 8097, 8175, 8247, 8311, 8366, 8412, 8453, 8492, 8534, 8581, 8631, 8682, 8732, 8779, 8819, 8856, 8897, 8953, 9030, 9133, 9256, 9388, 9514, 9620, 9705, 9771, 9823, 9867, 9908, 9946, 9980, 10017, 10066, 10132, 10218, 10321, 10433, 10543, 10641, 10726, 10798, 10859, 10911, 10954, 10988, 11011, 11030, 11048, 11070, 11098, 11131, 11162, 11179, 11178, 11153, 11110, 11055, 11001, 10955 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 46599, 47014, 47399, 47749, 48065, 48351, 48615, 48868, 49126, 49404, 49715, 50067, 50458, 50873, 51290, 51693, 52077, 52445, 52803, 53160, 53523, 53892, 54262, 54623, 54962, 55269, 55539, 55776, 55983, 56168, 56336, 56490, 56626, 56744, 56840, 56911, 56957, 56981, 56991, 56997, 57008, 57030, 57063, 57097, 57119, 57120, 57092, 57045, 57011, 57035, 57147, 57359, 57656, 58002, 58348, 58657, 58918, 59139, 59319, 59467, 59588, 59679, 59738, 59771, 59789, 59798 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 312, 313, 313, 314, 314, 314, 314, 314, 314, 314, 313, 312, 310, 309, 307, 306, 305, 305, 305, 304, 304, 305, 305, 305, 306, 308, 309, 311, 314, 317, 320, 323, 327, 331, 335, 338, 342, 345, 349, 352, 356, 359, 362, 366, 369, 372, 376, 379, 382, 385, 387, 389, 391, 393, 395, 397, 400, 403, 406, 409, 412, 414, 416, 417, 418, 419 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 395, 401, 411, 422, 433, 444, 453, 462, 470, 478, 487, 498, 510, 521, 529, 534, 534, 530, 525, 521, 520, 523, 529, 538, 547, 554, 560, 566, 570, 575, 581, 588, 595, 603, 609, 614, 616, 617, 616, 615, 615, 616, 617, 619, 620, 620, 620, 618, 616, 615, 614, 613, 614, 614, 615, 616, 617, 619, 620, 621, 622, 623, 624, 625, 625, 626 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 8417, 8431, 8474, 8532, 8597, 8661, 8720, 8770, 8812, 8846, 8875, 8899, 8917, 8924, 8916, 8889, 8840, 8774, 8710, 8670, 8670, 8718, 8806, 8924, 9055, 9186, 9314, 9441, 9561, 9667, 9756, 9824, 9873, 9904, 9922, 9929, 9925, 9912, 9896, 9887, 9890, 9910, 9943, 9987, 10034, 10078, 10120, 10160, 10198, 10238, 10279, 10320, 10362, 10403, 10442, 10480, 10517, 10551, 10577, 10590, 10585, 10559, 10515, 10460, 10402, 10350 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 25, 25, 26, 26, 26, 27, 27, 27, 27, 28, 28, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 32, 32 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 6732, 6853, 6963, 7063, 7153, 7235, 7309, 7377, 7440, 7499, 7557, 7613, 7670, 7726, 7781, 7835, 7889, 7943, 7998, 8057, 8120, 8188, 8261, 8337, 8416, 8497, 8580, 8663, 8747, 8829, 8908, 8985, 9058, 9128, 9193, 9253, 9306, 9352, 9397, 9450, 9518, 9604, 9703, 9798, 9864, 9884, 9852, 9775, 9670, 9560, 9463, 9385, 9320, 9268, 9225, 9187, 9155, 9130, 9110, 9087, 9059, 9024, 8983, 8938, 8893, 8851 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1473, 1482, 1492, 1503, 1515, 1527, 1540, 1552, 1564, 1576, 1587, 1597, 1606, 1614, 1622, 1629, 1637, 1644, 1651, 1660, 1670, 1681, 1695, 1710, 1726, 1743, 1760, 1777, 1796, 1815, 1836, 1858, 1881, 1904, 1925, 1945, 1963, 1979, 1991, 2001, 2007, 2008, 2006, 2001, 1996, 1991, 1989, 1988, 1988, 1989, 1989, 1988, 1988, 1988, 1991, 1997, 2006, 2017, 2031, 2043, 2052, 2059, 2063, 2065, 2066, 2068 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 28070, 28237, 28430, 28642, 28866, 29100, 29344, 29597, 29863, 30147, 30451, 30777, 31122, 31480, 31838, 32192, 32537, 32874, 33211, 33559, 33923, 34306, 34701, 35105, 35509, 35909, 36302, 36687, 37056, 37397, 37705, 37976, 38213, 38415, 38588, 38734, 38854, 38951, 39033, 39110, 39192, 39287, 39397, 39518, 39642, 39764, 39879, 39996, 40152, 40393, 40750, 41231, 41815, 42475, 43167, 43855, 44538, 45210, 45817, 46295, 46601, 46708, 46637, 46455, 46260, 46122 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1254, 1290, 1321, 1347, 1371, 1392, 1413, 1432, 1451, 1470, 1489, 1508, 1527, 1547, 1569, 1592, 1618, 1645, 1672, 1698, 1721, 1740, 1755, 1769, 1784, 1803, 1826, 1851, 1878, 1903, 1924, 1941, 1955, 1965, 1974, 1982, 1988, 1994, 1998, 1999, 1996, 1988, 1977, 1965, 1956, 1954, 1958, 1969, 1984, 1999, 2012, 2022, 2029, 2034, 2038, 2043, 2047, 2051, 2055, 2059, 2062, 2066, 2069, 2073, 2076, 2078 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 6936, 6930, 6929, 6932, 6939, 6949, 6963, 6981, 7004, 7032, 7066, 7106, 7151, 7200, 7250, 7299, 7346, 7391, 7433, 7473, 7510, 7543, 7574, 7599, 7617, 7628, 7631, 7626, 7616, 7606, 7597, 7592, 7589, 7590, 7593, 7601, 7610, 7624, 7642, 7670, 7707, 7755, 7813, 7875, 7930, 7973, 8000, 8015, 8023, 8033, 8051, 8079, 8115, 8155, 8197, 8235, 8269, 8301, 8331, 8361, 8392, 8424, 8455, 8487, 8517, 8545 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 8628, 8674, 8721, 8770, 8820, 8871, 8922, 8974, 9028, 9083, 9141, 9200, 9262, 9323, 9383, 9440, 9494, 9544, 9589, 9630, 9664, 9693, 9716, 9734, 9752, 9769, 9788, 9807, 9826, 9842, 9856, 9866, 9873, 9879, 9885, 9893, 9904, 9916, 9932, 9952, 9978, 10011, 10050, 10092, 10130, 10162, 10185, 10202, 10217, 10237, 10268, 10311, 10365, 10426, 10493, 10561, 10632, 10705, 10779, 10854, 10930, 11005, 11080, 11153, 11226, 11299 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 41880, 42071, 42366, 42724, 43118, 43528, 43947, 44376, 44828, 45319, 45866, 46471, 47122, 47782, 48403, 48952, 49411, 49792, 50127, 50466, 50844, 51274, 51741, 52214, 52648, 53011, 53293, 53510, 53685, 53858, 54053, 54279, 54528, 54799, 55085, 55380, 55687, 56005, 56328, 56643, 56943, 57227, 57495, 57750, 57992, 58224, 58443, 58653, 58867, 59108, 59387, 59712, 60076, 60465, 60859, 61242, 61610, 61966, 62310, 62641, 62961, 63268, 63562, 63845, 64121, 64395 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 69786, 70112, 70421, 70721, 71016, 71314, 71624, 71955, 72318, 72724, 73180, 73686, 74238, 74820, 75411, 75991, 76558, 77107, 77611, 78038, 78367, 78585, 78700, 78733, 78714, 78667, 78604, 78525, 78427, 78305, 78160, 77990, 77812, 77657, 77567, 77570, 77672, 77864, 78147, 78515, 78958, 79484, 80076, 80676, 81207, 81613, 81871, 81994, 82010, 81966, 81896, 81809, 81700, 81569, 81418, 81247, 81056, 80855, 80666, 80520, 80435, 80425, 80478, 80566, 80646, 80689 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 30, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 37, 37, 37, 37, 38 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 296, 298, 299, 302, 303, 305, 307, 309, 310, 312, 315, 317, 321, 324, 327, 330, 332, 334, 336, 338, 340, 342, 345, 348, 351, 354, 357, 359, 361, 363, 364, 365, 365, 365, 366, 367, 369, 371, 374, 378, 382, 386, 391, 397, 402, 408, 414, 420, 426, 431, 436, 440, 444, 447, 452, 458, 466, 475, 485, 496, 508, 520, 532, 545, 557, 567 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 20, 19, 19, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 25, 25, 26, 26, 26, 26, 27, 27, 28, 28, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 32, 32, 32, 32, 33, 33, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 38, 38 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 10027, 10149, 10276, 10407, 10542, 10681, 10822, 10966, 11114, 11265, 11419, 11576, 11736, 11897, 12057, 12216, 12372, 12525, 12675, 12822, 12965, 13104, 13239, 13369, 13493, 13611, 13722, 13827, 13926, 14018, 14103, 14182, 14255, 14325, 14397, 14472, 14551, 14635, 14723, 14817, 14915, 15019, 15128, 15239, 15348, 15451, 15547, 15636, 15722, 15807, 15894, 15984, 16076, 16167, 16253, 16332, 16401, 16463, 16520, 16575, 16632, 16690, 16749, 16809, 16868, 16925 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 4668, 4726, 4789, 4852, 4913, 4971, 5027, 5083, 5144, 5213, 5296, 5393, 5503, 5618, 5729, 5830, 5917, 5992, 6056, 6115, 6169, 6222, 6270, 6311, 6341, 6356, 6355, 6341, 6322, 6307, 6304, 6316, 6341, 6377, 6416, 6456, 6493, 6531, 6571, 6618, 6674, 6740, 6814, 6890, 6960, 7017, 7060, 7090, 7114, 7137, 7166, 7201, 7242, 7290, 7345, 7409, 7480, 7560, 7647, 7737, 7831, 7926, 8023, 8119, 8211, 8299 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 15 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 46, 48, 50, 51, 52, 53, 53, 53, 54, 54, 55, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 69, 70, 70, 71, 71, 70, 70, 69, 68, 67, 66, 65, 63, 63, 62, 62, 62, 63, 65, 67, 68, 70, 72, 74, 76, 78, 79, 80, 81, 82, 83, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 38, 38, 39, 40, 42, 44, 46, 48, 50, 53, 54, 55, 56, 57, 57, 57, 58, 58, 58, 59, 59, 59, 60, 60, 61, 61, 61, 60, 60, 60, 60, 61, 61, 62, 63, 63, 63, 62, 61, 61, 62, 65, 68, 72, 77, 80, 83, 85, 87, 89, 91, 93, 95, 97, 99, 100, 101, 101, 101, 101, 102, 102, 102, 103, 103, 104 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 79, 80, 81, 83, 86, 89, 92, 96, 100, 104, 110, 115, 121, 127, 134, 140, 146, 153, 159, 164, 169, 174, 178, 181, 185, 189, 193, 197, 202, 206, 211, 215, 220, 225, 230, 235, 239, 243, 248, 252, 256, 261, 266, 271, 276, 280, 284, 287, 290, 294, 298, 303, 309, 316, 323, 329, 336, 342, 349, 355, 361, 367, 372, 378, 383, 388 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 211, 216, 220, 223, 225, 227, 228, 229, 230, 230, 231, 232, 233, 234, 235, 235, 236, 237, 237, 238, 239, 240, 241, 243, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 255, 256, 257, 258, 259, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 271, 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, 283, 283, 284 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 25, 26, 26, 27, 28, 29, 29, 30, 30 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 15, 17, 18, 20, 21, 22, 23, 24, 24, 25 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20, 21, 23, 24, 25, 26, 27, 29, 30, 32, 34, 36, 38, 40, 42, 43, 45, 46, 47, 49, 50, 51, 53, 54, 56, 57, 58, 58, 59, 60 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 5920, 6051, 6180, 6305, 6424, 6539, 6652, 6765, 6881, 7005, 7141, 7290, 7450, 7618, 7787, 7952, 8110, 8264, 8413, 8563, 8715, 8870, 9025, 9176, 9315, 9438, 9544, 9635, 9711, 9777, 9835, 9884, 9926, 9967, 10017, 10083, 10168, 10269, 10379, 10486, 10582, 10665, 10736, 10798, 10853, 10906, 10955, 11000, 11042, 11081, 11117, 11151, 11185, 11215, 11241, 11261, 11275, 11284, 11290, 11297, 11308, 11324, 11343, 11363, 11379, 11390 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 100, 105, 108, 112, 114, 117, 119, 121, 123, 125, 127, 128, 130, 131, 132, 134, 136, 138, 140, 142, 144, 145, 147, 149, 150, 150, 150, 150, 149, 148, 148, 148, 149, 150, 150, 150, 150, 149, 148, 147, 147, 146, 146, 146, 145, 144, 142, 140, 137, 134, 132, 130, 129, 128, 128, 129, 132, 136, 140, 144, 148, 150, 153, 154, 156, 157 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 51, 52, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 72, 72, 72, 72, 73, 73, 74, 75, 75, 75, 75, 75, 74, 74, 73, 72, 72, 71, 71, 71, 71, 71, 71, 71, 71, 71, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 71, 72, 72, 72, 73 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2365, 2438, 2517, 2601, 2689, 2781, 2876, 2976, 3079, 3185, 3294, 3406, 3521, 3639, 3758, 3879, 4001, 4125, 4250, 4376, 4503, 4631, 4760, 4889, 5019, 5150, 5281, 5412, 5544, 5676, 5809, 5944, 6079, 6215, 6352, 6489, 6627, 6765, 6903, 7043, 7184, 7326, 7469, 7611, 7753, 7892, 8029, 8163, 8296, 8429, 8563, 8697, 8832, 8968, 9103, 9238, 9371, 9504, 9636, 9768, 9898, 10027, 10155, 10281, 10406, 10528 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 77, 77, 77, 78, 79, 81, 83, 85, 86, 88, 90, 91, 92, 93, 94, 95, 95, 95, 95, 95, 94, 94, 94, 94, 93, 92, 91, 90, 89, 89, 89, 91, 93, 96, 98, 100, 100, 99, 98, 97, 96, 96, 97, 98, 99, 100, 101, 101, 101, 101, 102, 102, 102, 102, 103, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, 107 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 210, 213, 217, 223, 229, 236, 244, 252, 260, 268, 275, 281, 287, 291, 296, 300, 305, 309, 313, 316, 319, 322, 324, 326, 327, 328, 328, 328, 328, 329, 331, 334, 339, 345, 352, 359, 365, 372, 379, 385, 390, 394, 398, 401, 404, 408, 412, 417, 422, 426, 431, 436, 440, 444, 448, 451, 453, 454, 455, 456, 457, 459, 461, 464, 466, 468 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3221, 3275, 3332, 3390, 3451, 3514, 3580, 3648, 3718, 3791, 3866, 3943, 4023, 4104, 4187, 4271, 4357, 4446, 4534, 4622, 4709, 4793, 4877, 4961, 5048, 5140, 5238, 5341, 5451, 5566, 5689, 5819, 5955, 6097, 6240, 6384, 6528, 6671, 6813, 6956, 7100, 7243, 7387, 7531, 7675, 7820, 7966, 8112, 8258, 8404, 8549, 8693, 8835, 8977, 9119, 9263, 9409, 9557, 9705, 9853, 10000, 10145, 10289, 10431, 10572, 10711 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1403, 1437, 1468, 1497, 1521, 1543, 1561, 1577, 1593, 1611, 1631, 1654, 1681, 1710, 1738, 1763, 1787, 1808, 1828, 1849, 1873, 1900, 1930, 1960, 1990, 2018, 2043, 2066, 2089, 2114, 2142, 2176, 2212, 2250, 2284, 2312, 2333, 2349, 2360, 2372, 2386, 2403, 2423, 2444, 2467, 2490, 2512, 2535, 2558, 2580, 2600, 2618, 2635, 2650, 2664, 2678, 2691, 2705, 2717, 2730, 2741, 2752, 2763, 2773, 2783, 2793 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 222, 224, 228, 233, 239, 246, 253, 260, 267, 274, 282, 288, 295, 301, 306, 311, 315, 319, 321, 323, 325, 326, 327, 328, 328, 328, 327, 326, 325, 325, 325, 327, 329, 333, 336, 340, 344, 348, 352, 355, 358, 361, 363, 364, 366, 369, 372, 376, 380, 384, 387, 390, 393, 395, 396, 397, 397, 397, 396, 395, 395, 395, 395, 396, 396, 396 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 14, 14, 14, 15, 15, 14, 14, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 9, 8, 7, 6, 5, 5, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2218, 2210, 2212, 2221, 2233, 2247, 2262, 2279, 2299, 2323, 2356, 2396, 2442, 2491, 2538, 2578, 2609, 2634, 2656, 2680, 2710, 2746, 2787, 2833, 2882, 2932, 2984, 3037, 3090, 3141, 3188, 3230, 3269, 3305, 3338, 3370, 3400, 3429, 3457, 3487, 3518, 3552, 3587, 3623, 3657, 3690, 3719, 3747, 3770, 3787, 3797, 3799, 3795, 3785, 3773, 3761, 3750, 3739, 3728, 3718, 3710, 3702, 3696, 3691, 3687, 3683 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 46, 46, 46, 47, 48, 48, 49, 50, 51, 51, 51, 51, 51, 51, 50, 49, 48, 47, 46, 46, 45, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 43, 42, 42, 42, 41, 41, 41, 41, 41, 41, 42, 42, 43, 43, 44, 44, 45, 46, 46, 47, 48, 48, 49, 50, 50, 51, 52, 52, 53, 54, 54, 55, 56 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 83, 84, 85, 85, 86, 87, 87, 88, 88, 89, 90, 91, 92, 93, 95, 96, 98, 100, 101, 103, 104, 105, 106, 107, 109, 110, 111, 113, 115, 116, 118, 120, 121, 123, 124, 126, 129, 131, 134, 136, 138, 140, 142, 144, 145, 147, 149, 151, 153, 155, 157, 159, 160, 162, 163, 165, 168, 170, 173, 175, 177, 179, 181, 182, 184, 185 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 67, 68, 69, 71, 72, 74, 75, 77, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 90, 91, 92, 94, 95, 96, 97, 98, 99, 100, 101, 101, 102, 103, 104, 104, 105, 106, 107, 107, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 10, 10, 11, 11, 12, 13, 14, 15, 16, 17, 19, 21, 23, 25, 27, 29, 30, 30, 30, 30, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 33, 33, 32, 32, 33, 33, 34, 35, 36, 38, 39 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 646, 659, 676, 695, 717, 740, 763, 786, 809, 829, 848, 865, 880, 893, 903, 912, 920, 926, 931, 938, 946, 956, 969, 983, 997, 1011, 1026, 1040, 1054, 1069, 1085, 1103, 1121, 1139, 1156, 1171, 1184, 1195, 1205, 1214, 1222, 1230, 1237, 1244, 1250, 1255, 1258, 1261, 1263, 1265, 1268, 1272, 1278, 1284, 1291, 1297, 1303, 1309, 1315, 1322, 1328, 1335, 1342, 1348, 1354, 1360 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 20, 22, 23, 25, 26, 28, 29, 29, 30, 31, 32, 32, 33, 34, 34 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 27, 27, 28, 29, 29, 29, 29, 30, 30, 31, 33, 35, 39, 42, 46, 50, 53, 55, 58, 61, 64, 68, 73, 77, 82, 86, 89, 92, 94, 96, 98, 100, 102, 103, 104, 105, 105, 104, 104, 103, 103, 104, 104, 105, 106, 107, 108, 108, 108, 108, 109, 109, 108, 108, 108, 108, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 69, 71, 73, 76, 78, 80, 82, 85, 87, 89, 92, 95, 97, 100, 103, 106, 109, 113, 116, 119, 122, 125, 127, 129, 131, 133, 135, 137, 139, 141, 144, 148, 151, 156, 160, 165, 170, 174, 179, 183, 188, 191, 194, 198, 202, 207, 214, 222, 230, 239, 247, 255, 262, 269, 276, 283, 291, 298, 306, 314, 322, 329, 337, 344, 352, 359 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 959, 986, 1016, 1048, 1083, 1120, 1158, 1199, 1242, 1286, 1333, 1382, 1433, 1485, 1537, 1590, 1642, 1695, 1747, 1798, 1849, 1898, 1947, 1996, 2046, 2097, 2151, 2208, 2266, 2327, 2389, 2454, 2521, 2590, 2660, 2730, 2801, 2872, 2945, 3019, 3096, 3176, 3257, 3341, 3426, 3511, 3597, 3683, 3767, 3849, 3925, 3997, 4063, 4126, 4187, 4248, 4309, 4369, 4430, 4488, 4545, 4600, 4654, 4706, 4758, 4808 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2200, 2237, 2278, 2325, 2375, 2429, 2488, 2550, 2616, 2687, 2763, 2843, 2928, 3016, 3106, 3198, 3290, 3384, 3478, 3573, 3669, 3765, 3862, 3959, 4054, 4148, 4239, 4329, 4416, 4499, 4578, 4652, 4722, 4789, 4855, 4921, 4987, 5052, 5118, 5184, 5252, 5322, 5392, 5462, 5528, 5589, 5643, 5692, 5736, 5776, 5812, 5845, 5874, 5901, 5925, 5947, 5968, 5986, 6004, 6021, 6038, 6055, 6072, 6090, 6108, 6127 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3146, 3238, 3331, 3424, 3519, 3614, 3712, 3812, 3914, 4019, 4128, 4240, 4357, 4477, 4601, 4728, 4859, 4993, 5131, 5275, 5423, 5578, 5738, 5902, 6069, 6238, 6408, 6580, 6754, 6933, 7119, 7310, 7508, 7710, 7914, 8117, 8320, 8524, 8729, 8940, 9159, 9385, 9619, 9860, 10106, 10357, 10612, 10872, 11137, 11409, 11689, 11977, 12272, 12573, 12878, 13184, 13490, 13798, 14107, 14418, 14732, 15049, 15369, 15691, 16015, 16343 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1487, 1525, 1568, 1616, 1666, 1717, 1770, 1824, 1880, 1940, 2002, 2069, 2139, 2211, 2283, 2353, 2420, 2486, 2552, 2620, 2691, 2766, 2845, 2928, 3016, 3108, 3205, 3307, 3413, 3523, 3636, 3751, 3868, 3988, 4111, 4237, 4366, 4498, 4631, 4767, 4903, 5041, 5180, 5318, 5455, 5591, 5725, 5856, 5986, 6115, 6243, 6371, 6499, 6626, 6753, 6880, 7007, 7134, 7259, 7383, 7504, 7621, 7736, 7849, 7962, 8075 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 28013, 28836, 29712, 30634, 31600, 32605, 33648, 34727, 35841, 36990, 38174, 39394, 40650, 41940, 43264, 44623, 46011, 47430, 48894, 50423, 52030, 53720, 55480, 57283, 59090, 60872, 62620, 64338, 66026, 67689, 69331, 70951, 72548, 74133, 75721, 77323, 78939, 80571, 82223, 83902, 85609, 87347, 89110, 90887, 92664, 94427, 96182, 97926, 99632, 101267, 102809, 104240, 105578, 106888, 108258, 109748, 111383, 113139, 114973, 116816, 118618, 120365, 122071, 123740, 125386, 127017 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1295, 1332, 1372, 1414, 1460, 1508, 1558, 1611, 1665, 1719, 1775, 1830, 1887, 1944, 2002, 2063, 2125, 2190, 2257, 2326, 2398, 2473, 2550, 2630, 2712, 2797, 2884, 2974, 3065, 3157, 3250, 3343, 3436, 3528, 3619, 3709, 3797, 3883, 3968, 4055, 4145, 4237, 4331, 4427, 4521, 4612, 4701, 4787, 4870, 4950, 5027, 5101, 5172, 5241, 5310, 5379, 5450, 5522, 5595, 5667, 5738, 5808, 5877, 5946, 6014, 6082 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 860, 881, 904, 929, 954, 981, 1009, 1038, 1068, 1100, 1133, 1167, 1202, 1239, 1276, 1315, 1354, 1394, 1435, 1476, 1519, 1563, 1608, 1653, 1699, 1745, 1791, 1838, 1885, 1931, 1979, 2026, 2074, 2122, 2170, 2219, 2269, 2318, 2369, 2420, 2471, 2523, 2575, 2629, 2683, 2738, 2795, 2853, 2911, 2970, 3029, 3087, 3145, 3203, 3261, 3319, 3379, 3438, 3499, 3559, 3621, 3682, 3744, 3806, 3868, 3929 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 17150, 17507, 17866, 18224, 18579, 18929, 19275, 19615, 19951, 20286, 20619, 20953, 21288, 21622, 21954, 22283, 22609, 22932, 23261, 23606, 23973, 24366, 24783, 25213, 25645, 26067, 26477, 26879, 27278, 27685, 28106, 28543, 28994, 29455, 29921, 30389, 30857, 31326, 31796, 32264, 32730, 33194, 33655, 34111, 34558, 34995, 35420, 35834, 36242, 36648, 37057, 37472, 37889, 38309, 38729, 39145, 39559, 39970, 40382, 40799, 41223, 41656, 42095, 42538, 42980, 43417 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3090, 3140, 3193, 3248, 3306, 3365, 3427, 3491, 3556, 3624, 3693, 3765, 3838, 3913, 3991, 4071, 4153, 4237, 4324, 4414, 4506, 4601, 4698, 4799, 4902, 5009, 5120, 5234, 5350, 5469, 5590, 5712, 5835, 5960, 6085, 6212, 6338, 6465, 6593, 6723, 6856, 6993, 7132, 7274, 7419, 7567, 7717, 7871, 8026, 8183, 8340, 8496, 8653, 8810, 8968, 9125, 9283, 9441, 9600, 9759, 9918, 10078, 10239, 10400, 10562, 10725 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 53975, 55606, 57305, 59053, 60839, 62656, 64507, 66400, 68351, 70377, 72494, 74707, 77008, 79368, 81752, 84130, 86495, 88854, 91213, 93586, 95982, 98402, 100844, 103321, 105846, 108431, 111076, 113776, 116532, 119341, 122200, 125107, 128055, 131014, 133951, 136836, 139665, 142437, 145150, 147802, 150393, 152917, 155379, 157812, 160261, 162755, 165303, 167894, 170516, 173153, 175786, 178419, 181046, 183627, 186116, 188479, 190698, 192785, 194770, 196701, 198614, 200518, 202402, 204259, 206078, 207848 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 6143, 6278, 6418, 6561, 6709, 6862, 7020, 7183, 7350, 7521, 7696, 7874, 8054, 8238, 8424, 8612, 8803, 8995, 9188, 9377, 9562, 9742, 9917, 10087, 10255, 10421, 10584, 10746, 10908, 11070, 11234, 11400, 11569, 11742, 11921, 12109, 12304, 12507, 12717, 12928, 13141, 13354, 13567, 13779, 13988, 14194, 14396, 14594, 14789, 14980, 15170, 15358, 15545, 15729, 15913, 16097, 16280, 16463, 16646, 16830, 17015, 17201, 17388, 17576, 17763, 17948 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 12341, 12700, 13065, 13439, 13825, 14225, 14642, 15075, 15526, 15995, 16480, 16982, 17500, 18034, 18582, 19144, 19721, 20311, 20905, 21491, 22061, 22612, 23147, 23675, 24208, 24757, 25323, 25905, 26502, 27114, 27738, 28376, 29027, 29687, 30350, 31012, 31670, 32324, 32976, 33624, 34272, 34917, 35559, 36195, 36824, 37442, 38049, 38645, 39234, 39819, 40404, 40989, 41572, 42152, 42724, 43286, 43836, 44375, 44902, 45416, 45918, 46406, 46881, 47342, 47791, 48229 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3470, 3561, 3655, 3752, 3853, 3957, 4066, 4179, 4297, 4419, 4546, 4677, 4813, 4954, 5099, 5250, 5406, 5566, 5731, 5900, 6073, 6249, 6429, 6612, 6798, 6987, 7179, 7374, 7572, 7773, 7976, 8183, 8393, 8606, 8824, 9046, 9273, 9504, 9739, 9977, 10218, 10461, 10706, 10951, 11196, 11441, 11683, 11925, 12164, 12399, 12629, 12853, 13072, 13290, 13510, 13735, 13967, 14205, 14448, 14691, 14935, 15177, 15419, 15661, 15903, 16144 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 25, 26, 27, 27, 28, 28, 29, 30, 30, 31, 32, 33, 34, 36, 37, 39, 41, 42, 44, 46, 48, 50, 51, 53, 55, 56, 58, 60, 62, 64, 67, 70, 73, 77, 82, 86, 92, 98, 104, 110, 116, 121, 125, 129, 133, 137, 142, 146, 151, 157, 163, 171, 179, 187, 196, 203, 210, 216, 222, 228, 234, 240, 247, 254, 261, 269 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 407, 420, 436, 452, 469, 485, 501, 516, 532, 547, 564, 582, 601, 619, 636, 650, 662, 672, 680, 688, 696, 704, 712, 721, 730, 740, 751, 762, 773, 782, 787, 788, 785, 780, 773, 765, 756, 745, 735, 726, 720, 718, 718, 720, 723, 727, 730, 734, 737, 740, 742, 743, 743, 743, 742, 742, 744, 746, 748, 751, 753, 756, 758, 761, 764, 767 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1473, 1512, 1551, 1590, 1631, 1673, 1716, 1761, 1807, 1854, 1903, 1953, 2005, 2059, 2114, 2171, 2229, 2290, 2351, 2413, 2474, 2535, 2597, 2659, 2724, 2791, 2862, 2935, 3013, 3094, 3181, 3271, 3367, 3466, 3568, 3672, 3778, 3885, 3994, 4104, 4214, 4323, 4433, 4542, 4651, 4761, 4871, 4980, 5089, 5197, 5303, 5407, 5509, 5608, 5704, 5795, 5883, 5966, 6047, 6128, 6210, 6294, 6379, 6466, 6553, 6639 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7728, 7924, 8129, 8340, 8560, 8787, 9022, 9266, 9520, 9785, 10062, 10350, 10651, 10962, 11281, 11608, 11941, 12282, 12629, 12982, 13341, 13704, 14072, 14448, 14833, 15230, 15640, 16061, 16491, 16925, 17359, 17793, 18226, 18660, 19100, 19545, 19996, 20452, 20910, 21369, 21827, 22283, 22737, 23184, 23619, 24039, 24441, 24827, 25200, 25561, 25915, 26261, 26601, 26938, 27273, 27610, 27950, 28293, 28642, 29002, 29374, 29760, 30159, 30565, 30973, 31377 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 215, 223, 230, 236, 243, 250, 257, 265, 273, 282, 290, 298, 306, 315, 323, 332, 341, 351, 360, 367, 371, 373, 371, 368, 365, 363, 361, 361, 361, 362, 363, 363, 364, 365, 368, 371, 377, 384, 392, 400, 408, 416, 424, 431, 438, 446, 454, 462, 469, 476, 481, 484, 486, 488, 489, 492, 496, 501, 507, 513, 518, 523, 529, 533, 538, 543 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2239, 2261, 2286, 2313, 2342, 2373, 2405, 2437, 2471, 2505, 2539, 2572, 2604, 2635, 2665, 2695, 2723, 2750, 2775, 2795, 2810, 2818, 2821, 2822, 2824, 2830, 2841, 2857, 2876, 2896, 2916, 2935, 2954, 2973, 2993, 3012, 3031, 3050, 3069, 3089, 3110, 3132, 3155, 3178, 3202, 3225, 3248, 3271, 3292, 3309, 3321, 3327, 3328, 3326, 3324, 3326, 3331, 3340, 3351, 3363, 3374, 3386, 3397, 3408, 3420, 3432 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 5482, 5735, 5990, 6245, 6501, 6758, 7019, 7286, 7561, 7847, 8147, 8462, 8791, 9130, 9476, 9825, 10175, 10528, 10882, 11235, 11588, 11938, 12286, 12637, 12994, 13361, 13739, 14128, 14526, 14932, 15344, 15762, 16186, 16617, 17058, 17508, 17969, 18438, 18912, 19388, 19862, 20332, 20799, 21264, 21727, 22189, 22649, 23108, 23566, 24023, 24481, 24940, 25399, 25858, 26314, 26769, 27221, 27671, 28117, 28559, 28996, 29428, 29854, 30276, 30694, 31108 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 37, 38, 38, 39, 40, 41, 42, 42, 43, 44, 45, 46, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 55, 56, 56, 57, 57, 57, 58, 58, 59, 59, 59, 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 64, 64, 64, 63, 63, 62, 62 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 13737, 14100, 14481, 14882, 15300, 15734, 16177, 16625, 17068, 17499, 17909, 18296, 18660, 19007, 19349, 19694, 20041, 20389, 20739, 21089, 21439, 21790, 22142, 22489, 22823, 23141, 23440, 23724, 23995, 24258, 24516, 24769, 25018, 25273, 25547, 25848, 26181, 26542, 26919, 27297, 27662, 28014, 28354, 28681, 28996, 29299, 29591, 29871, 30145, 30420, 30702, 30991, 31289, 31597, 31919, 32256, 32611, 32982, 33363, 33747, 34126, 34500, 34868, 35231, 35588, 35940 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 23, 23, 24, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 40, 41, 43, 45, 46, 47, 48, 49, 49, 50, 50, 50, 50, 50, 50, 51, 51, 52, 53, 53, 54, 54, 55, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 56, 56, 56, 56, 56 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 157813, 159881, 162280, 164942, 167800, 170796, 173877, 176995, 180108, 183178, 186177, 189077, 191861, 194514, 197029, 199404, 201629, 203713, 205688, 207599, 209486, 211358, 213220, 215093, 217002, 218964, 220993, 223091, 225239, 227412, 229588, 231766, 233954, 236162, 238404, 240692, 243032, 245425, 247865, 250341, 252848, 255367, 257908, 260527, 263301, 266276, 269483, 272883, 276354, 279731, 282896, 285796, 288471, 291005, 293531, 296140, 298861, 301656, 304473, 307232, 309876, 312390, 314799, 317136, 319449, 321774 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 8177, 8418, 8627, 8822, 9015, 9213, 9421, 9637, 9859, 10080, 10292, 10495, 10691, 10893, 11115, 11368, 11657, 11976, 12306, 12621, 12905, 13151, 13364, 13552, 13725, 13893, 14055, 14212, 14369, 14532, 14708, 14898, 15101, 15318, 15549, 15791, 16047, 16315, 16586, 16849, 17097, 17326, 17538, 17738, 17932, 18125, 18318, 18513, 18709, 18907, 19107, 19309, 19514, 19735, 19985, 20274, 20606, 20976, 21370, 21771, 22163, 22542, 22911, 23270, 23622, 23969 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1908, 1948, 1993, 2040, 2088, 2136, 2183, 2229, 2275, 2323, 2372, 2424, 2477, 2531, 2582, 2628, 2669, 2704, 2738, 2776, 2820, 2872, 2930, 2990, 3043, 3083, 3109, 3123, 3129, 3135, 3147, 3165, 3189, 3216, 3243, 3268, 3290, 3310, 3332, 3360, 3398, 3446, 3503, 3564, 3623, 3675, 3717, 3752, 3784, 3817, 3858, 3907, 3962, 4020, 4079, 4135, 4188, 4238, 4285, 4329, 4369, 4404, 4436, 4465, 4495, 4529 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 289, 296, 305, 314, 324, 335, 346, 357, 368, 380, 393, 407, 422, 436, 450, 464, 476, 488, 499, 510, 521, 532, 543, 554, 565, 577, 588, 598, 609, 622, 635, 651, 668, 685, 700, 712, 719, 722, 723, 725, 729, 735, 745, 755, 766, 775, 784, 793, 800, 806, 811, 814, 816, 817, 818, 822, 827, 835, 843, 852, 860, 867, 874, 880, 886, 892 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 65, 64, 64, 65, 66, 68, 69, 71, 73, 76, 78, 81, 83, 86, 89, 91, 94, 96, 99, 101, 105, 109, 114, 119, 124, 128, 132, 135, 137, 140, 142, 144, 147, 149, 151, 154, 157, 159, 162, 165, 169, 172, 176, 181, 185, 189, 193, 198, 202, 206, 210, 214, 218, 221, 225, 229, 232, 236, 239, 243, 246, 250, 253, 256, 260, 263 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 1708, 1729, 1751, 1773, 1797, 1821, 1848, 1875, 1904, 1935, 1967, 2001, 2037, 2076, 2117, 2161, 2208, 2259, 2313, 2372, 2435, 2503, 2576, 2653, 2731, 2810, 2889, 2968, 3048, 3130, 3215, 3304, 3396, 3489, 3584, 3678, 3772, 3865, 3960, 4057, 4158, 4262, 4369, 4481, 4596, 4716, 4840, 4969, 5102, 5237, 5374, 5513, 5653, 5796, 5940, 6087, 6236, 6387, 6540, 6694, 6848, 7001, 7155, 7309, 7464, 7619 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 90, 92, 94, 97, 99, 102, 105, 108, 111, 114, 118, 121, 125, 129, 133, 137, 141, 145, 150, 155, 160, 166, 173, 179, 186, 193, 201, 208, 215, 223, 231, 238, 247, 255, 263, 271, 279, 287, 295, 303, 312, 321, 330, 339, 349, 359, 369, 380, 390, 401, 412, 424, 435, 446, 458, 469, 481, 492, 503, 515, 526, 538, 549, 561, 572, 584 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 48, 49, 50, 52, 53, 55, 57, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 79, 81, 83, 85, 88, 91, 94, 97, 100, 103, 106, 109, 113, 116, 119, 121, 124, 127, 130, 133, 136, 139, 143, 147, 151, 155, 160, 164, 168, 172, 175, 178, 181, 185, 189, 194, 199, 204, 209, 215, 220, 225, 231, 236, 242, 247, 253, 259, 265 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 60, 60, 61, 61, 62, 63, 63, 64, 65, 66, 67, 68, 70, 71, 73, 75, 77, 78, 80, 82, 84, 86, 88, 89, 91, 93, 95, 97, 100, 102, 104, 106, 109, 111, 114, 117, 119, 122, 125, 128, 130, 134, 137, 140, 143, 146, 148, 150, 152, 154, 155, 156, 157, 158, 158, 158, 158, 158, 158, 159, 159, 161, 163, 165, 168, 170 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 33, 34, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, 58, 59, 59, 60, 61, 62, 63, 64, 66, 67, 69, 71, 72, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 86, 87, 89, 91, 92, 94, 96, 98, 101, 103, 105, 107, 109, 110, 112 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 20, 20, 21, 22, 23, 25, 26, 27, 27, 28, 29, 31, 32, 33, 35, 37, 38, 40, 42, 44, 46, 47, 48, 49, 50, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 32, 33, 35, 36, 37, 38, 39, 40, 42, 43, 45, 46, 47, 49, 50, 52, 54, 56, 58, 60, 61, 62, 62, 62, 62, 63, 64, 66, 68, 71, 73, 75, 78, 81, 83, 86, 88, 90, 92, 94, 96, 99, 101, 104, 106, 108, 108, 109, 108, 108, 107, 107, 107, 107, 107, 106, 106, 105, 104, 104, 104, 103, 104, 104, 104, 104 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7, 7, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 15, 15, 16, 17, 19, 21, 24, 27, 30, 33, 36, 39, 41, 44, 47, 49, 52, 55, 58, 60, 63, 65, 67, 68, 69, 68, 68, 66, 64, 62, 60, 57, 55, 54, 53, 53, 54, 55, 55 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 22, 23, 24, 24, 25, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 35, 36, 38, 39, 41, 42, 44, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 58, 59, 59, 59, 59, 59, 58, 57, 56, 56, 55, 55, 55, 55, 56 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 15, 15, 16, 16, 16, 16, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 19, 20, 21, 21, 21, 22, 21, 21, 21, 20, 20, 19, 19, 18, 18, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 60, 62, 64, 66, 67, 69, 70, 72, 74, 76, 78, 81, 84, 87, 90, 93, 97, 100, 103, 107, 110, 114, 118, 122, 126, 131, 135, 139, 143, 147, 152, 156, 161, 166, 170, 175, 180, 185, 190, 194, 198, 202, 205, 208, 212, 215, 219, 224, 228, 233, 237, 241, 245, 249, 252, 255, 258, 260, 263, 265, 268, 271, 274, 277, 280, 283 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 82, 84, 87, 89, 92, 94, 97, 100, 102, 105, 109, 112, 116, 120, 123, 127, 131, 134, 138, 141, 143, 145, 147, 149, 150, 151, 152, 153, 154, 155, 156, 156, 157, 158, 159, 160, 161, 161, 161, 162, 163, 164, 166, 167, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 186, 187, 189, 190, 192, 193 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 47, 49, 51, 53, 54, 55, 56, 57, 59, 60, 62, 64, 66, 69, 72, 74, 77, 79, 81, 83, 84, 86, 86, 87, 88, 88, 89, 90, 91, 92, 93, 93, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 96, 96, 96, 96, 97, 97, 97, 98, 98, 99, 100, 100, 101, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 )), .Names = c("args","vals")), structure(list(args=c( 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 ), vals=c( 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13 )), .Names = c("args","vals")) ), labels = list( "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Africa", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Asia", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "LatinAmerica", "NorthAmerica", "NorthAmerica", "NorthAmerica", "NorthAmerica", "NorthAmerica", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania", "Oceania" ), identifier = list( "Burundi", "Comoros", "Djibouti", "Eritrea", "Ethiopia", "Kenya", "Madagascar", "Malawi", "Mauritius", "Mayotte", "Mozambique", "Reunion", "Rwanda", "Seychelles", "Somalia", "South Sudan", "Uganda", "United Republic of Tanzania", "Zambia", "Zimbabwe", "Angola", "Cameroon", "Central African Republic", "Chad", "Congo", "Democratic Republic of the Congo", "Equatorial Guinea", "Gabon", "Sao Tome and Principe", "Algeria", "Egypt", "Libya", "Morocco", "Sudan", "Tunisia", "Western Sahara", "Botswana", "Lesotho", "Namibia", "South Africa", "Swaziland", "Benin", "Burkina Faso", "Cabo Verde", "Cote d'Ivoire", "Gambia", "Ghana", "Guinea", "Guinea-Bissau", "Liberia", "Mali", "Mauritania", "Niger", "Nigeria", "Saint Helena", "Senegal", "Sierra Leone", "Togo", "China", "China, Hong Kong SAR", "China, Macao SAR", "Dem. People's Republic of Korea", "Japan", "Mongolia", "Republic of Korea", "Other non-specified areas", "Kazakhstan", "Kyrgyzstan", "Tajikistan", "Turkmenistan", "Uzbekistan", "Afghanistan", "Bangladesh", "Bhutan", "India", "Iran (Islamic Republic of)", "Maldives", "Nepal", "Pakistan", "Sri Lanka", "Brunei Darussalam", "Cambodia", "Indonesia", "Lao People's Democratic Republic", "Malaysia", "Myanmar", "Philippines", "Singapore", "Thailand", "Timor-Leste", "Viet Nam", "Armenia", "Azerbaijan", "Bahrain", "Cyprus", "Georgia", "Iraq", "Israel", "Jordan", "Kuwait", "Lebanon", "Oman", "Qatar", "Saudi Arabia", "State of Palestine", "Syrian Arab Republic", "Turkey", "United Arab Emirates", "Yemen", "Belarus", "Bulgaria", "Czech Republic", "Hungary", "Poland", "Republic of Moldova", "Romania", "Russian Federation", "Slovakia", "Ukraine", "Channel Islands", "Denmark", "Estonia", "Faeroe Islands", "Finland", "Iceland", "Ireland", "Isle of Man", "Latvia", "Lithuania", "Norway", "Sweden", "United Kingdom", "Albania", "Andorra", "Bosnia and Herzegovina", "Croatia", "Gibraltar", "Greece", "Holy See", "Italy", "Malta", "Montenegro", "Portugal", "San Marino", "Serbia", "Slovenia", "Spain", "TFYR Macedonia", "Austria", "Belgium", "France", "Germany", "Liechtenstein", "Luxembourg", "Monaco", "Netherlands", "Switzerland", "Anguilla", "Antigua and Barbuda", "Aruba", "Bahamas", "Barbados", "British Virgin Islands", "Caribbean Netherlands", "Cayman Islands", "Cuba", "Curacao", "Dominica", "Dominican Republic", "Grenada", "Guadeloupe", "Haiti", "Jamaica", "Martinique", "Montserrat", "Puerto Rico", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent and the Grenadines", "Sint Maarten (Dutch part)", "Trinidad and Tobago", "Turks and Caicos Islands", "United States Virgin Islands", "Belize", "Costa Rica", "El Salvador", "Guatemala", "Honduras", "Mexico", "Nicaragua", "Panama", "Argentina", "Bolivia (Plurinational State of)", "Brazil", "Chile", "Colombia", "Ecuador", "Falkland Islands (Malvinas)", "French Guiana", "Guyana", "Paraguay", "Peru", "Suriname", "Uruguay", "Venezuela (Bolivarian Republic of)", "Bermuda", "Canada", "Greenland", "Saint Pierre and Miquelon", "United States of America", "Australia", "New Zealand", "Fiji", "New Caledonia", "Papua New Guinea", "Solomon Islands", "Vanuatu", "Guam", "Kiribati", "Marshall Islands", "Micronesia (Fed. States of)", "Nauru", "Northern Mariana Islands", "Palau", "American Samoa", "Cook Islands", "French Polynesia", "Niue", "Samoa", "Tokelau", "Tonga", "Tuvalu", "Wallis and Futuna Islands" )), class = "functional") )ddalpha/R/ddalpha-internal.r0000644000176200001440000017762213156567650015477 0ustar liggesusers################################################################################ # File: ddalpha-internal.r # Created by: Pavlo Mozharovskyi # First published: 28.02.2013 # Last revised: 13.11.2015 # # Contains the internal functions of the DDalpha-classifier. # # For a description of the algorithm, see: # Lange, T., Mosler, K. and Mozharovskyi, P. (2012). Fast nonparametric # classification based on data depth. Statistical Papers. # Mozharovskyi, P., Mosler, K. and Lange, T. (2013). Classifying real-world # data with the DDalpha-procedure. Mimeo. ################################################################################ .ddalpha.create.structure <- function(formula, data, subset, ...){ # if the user calls ddalpha(data, , ...) # for backward compatibility if(!missing(formula) && missing(data) && (is.data.frame(formula) || is.matrix(formula))){ data = formula formula = NULL } # formula is present if(!missing(formula) && !is.null(formula)){ needed.frame <- sys.nframe() - 1 cl <- match.call(call = sys.call(sys.parent(n = needed.frame))) mf <- match.call(expand.dots = FALSE, call = sys.call(sys.parent(n = needed.frame))) m <- match(c("formula", "data", "subset"#, "weights", "na.action", "offset" ), names(mf), 0L) mf <- mf[c(1L, m)] mf$drop.unused.levels <- TRUE mf[[1L]] <- quote(stats::model.frame) mf <- eval(mf, parent.frame()) clres = colnames(mf) cat("Selected columns: ", paste(clres, collapse = ", "), "\n") classif.formula = delete.response(terms(mf)) data = cbind(mf[,-1,drop=F], mf[,1,drop=F]) # y = model.response(mf) # mm = model.matrix(formula, data = mf) # mm = as.data.frame(mm[,-1,drop=F]) # colnames(mm) <- paste0("P_",1:ncol(mm)) # data = cbind(mm, y) #colnames(mf) <- paste0("P_",1:ncol(mm)) } else { # no formula # Check for data consistency if (!(is.matrix(data) && is.numeric(data) || is.data.frame(data) && prod(sapply(data[,-ncol(data)], is.numeric)))){ stop("Argument data has unacceptable format. Classifier can not be trained!!!") } cl = NULL classif.formula = NULL clres = colnames(data) if(!is.data.frame(data)) data = as.data.frame(data) if(!missing(subset)) data = data[subset,] } names(data)[ncol(data)] <- "CLASS" # Elemantary statistics dimension <- ncol(data) - 1 numOfPoints <- nrow(data) classNames <- unique(data[,dimension + 1]) numOfClasses <- length(classNames) if(!is.data.frame(data)) data = as.data.frame(data) names(data)[ncol(data)] <- "CLASS" # Creating overall structure ddalpha <- list( call = cl, colnames = clres, # colnames after formula is applied classif.formula = classif.formula, # for classification raw = data, # after formula is applied dimension = dimension, numPatterns = numOfClasses, numPoints = numOfPoints, patterns = list(), needtransform = 0, # 0 - no transform, 1 - transform new points before classification, all classes the same, 2 - transform differently w.r.t. to classes. classifiers = list(), # numClassifiers = 0, # methodDepth = "halfspace", # methodSeparator = "alpha", # methodAggregation = "majority", # methodsOutsider = NULL, # numDirections = 1000, # directions = NULL, # projections = NULL, sameDirections = TRUE, useConvex = FALSE, maxDegree = 3, numChunks = numOfPoints, # knnrange = NULL, # mahEstimate = "moment", # mahParMcd = 0.75, # mahPriors = NULL, # knnK = 1, # knnX = NULL, # knnY = NULL, # knnD = NULL, treatments = c("LDA", "KNNAFF", "KNN", "DEPTH.MAHALANOBIS", "RANDEQUAL", "RANDPROP", "IGNORE")) # Ordering patterns according to their cardinalities classCardinalities <- rep(0, numOfClasses) for (i in 1:numOfClasses){ classCardinalities[i] <- nrow(data[data[,dimension + 1] == classNames[i],]) } # Creating pattern templates patterns <- as.list("") for (i in 1:numOfClasses){ maxCarIndex <- which.max(classCardinalities) # Creating a single template ddalpha$patterns[[i]] <- list( index = i, points = data[data[,dimension + 1] == classNames[maxCarIndex],1:dimension], name = classNames[maxCarIndex], cardinality = classCardinalities[maxCarIndex], depths = matrix(rep(0, numOfClasses*classCardinalities[maxCarIndex]), nrow = classCardinalities[maxCarIndex], ncol = numOfClasses), votes = 0#, # center = 0, # cov = 0, # sigma = 0, # centerMcd = 0, # covMcd = 0, # sigmaMcd = 0 ) # Adding pattern template to the list of patterns class(ddalpha$patterns[[i]])<-"ddalpha.pattern" # Deleting processed pattern classCardinalities[maxCarIndex] <- -1 } return (ddalpha) } .ddalpha.learn.depth <- function(ddalpha){ # try to find a custom depth fname = paste0(".", ddalpha$methodDepth, "_learn") f <- try(match.fun(fname), silent = T) if (is.function(f)){ ddalpha = f(ddalpha) return(ddalpha) } # If it's the random Tukey depth, compute it first if (ddalpha$methodDepth == "halfspace"){ dSpaceStructure <- .halfspace_space(ddalpha) ddalpha$directions <- dSpaceStructure$directions ddalpha$projections <- dSpaceStructure$projections tmpDSpace <- dSpaceStructure$dspace } if (ddalpha$methodDepth == "projection"){ dSpaceStructure <- .projection_space(ddalpha) tmpDSpace <- dSpaceStructure$dspace if (ddalpha$dmethod == "random"){ ddalpha$directions <- dSpaceStructure$directions ddalpha$projections <- dSpaceStructure$projections } } classBegin = 1 if (ddalpha$methodDepth == "potential"){ tmpDSpace <- .ddalpha.count.depths(ddalpha, NULL) } # Calculating depths in each pattern for (i in 1:ddalpha$numPatterns){ if ( ddalpha$methodDepth == "halfspace" || ddalpha$methodDepth == "projection" || ddalpha$methodDepth == "potential"){ # Random depth is already calculated, just distribute ddalpha$patterns[[i]]$depths <- tmpDSpace[classBegin:(classBegin+ddalpha$patterns[[i]]$cardinality-1),] classBegin = classBegin+ddalpha$patterns[[i]]$cardinality } else if (ddalpha$methodDepth == "zonoid"){ # Calculate depths for the class w.r.t all classes, saying to which of the classes the chunk belongs ddalpha$patterns[[i]]$depths <- .zonoid_depths(ddalpha, ddalpha$patterns[[i]]$points, i) } else if (ddalpha$methodDepth == "Mahalanobis"){ ddalpha$patterns[[i]]$depths <- .Mahalanobis_depths(ddalpha, ddalpha$patterns[[i]]$points) } if (ddalpha$methodDepth == "spatial"){ # Calculate depths for the class w.r.t all classes, saying to which of the classes the chunk belongs ddalpha$patterns[[i]]$depths <- .spatial_depths(ddalpha, ddalpha$patterns[[i]]$points) } if (ddalpha$methodDepth == "spatialLocal"){ # Calculate depths for the class w.r.t all classes, saying to which of the classes the chunk belongs ddalpha$patterns[[i]]$depths <- .spatialLocal_depths(ddalpha, ddalpha$patterns[[i]]$points) } if (ddalpha$methodDepth == "simplicial"){ # Calculate depths for the class w.r.t all classes, saying to which of the classes the chunk belongs ddalpha$patterns[[i]]$depths <- .simplicial_depths(ddalpha, ddalpha$patterns[[i]]$points) } if (ddalpha$methodDepth == "simplicialVolume"){ # Calculate depths for the class w.r.t all classes, saying to which of the classes the chunk belongs ddalpha$patterns[[i]]$depths <- .simplicialVolume_depths(ddalpha, ddalpha$patterns[[i]]$points) } } return (ddalpha) } .getFunction <- function(fname) { f <- try(match.fun(fname), silent = T) if (!is.function(f)) stop("Wrong or absent function: ", fname) f } .ddalpha.learn.binary <- function(ddalpha){ fname = paste0(".", ddalpha$methodSeparator, "_learn") learn <- try(match.fun(fname), silent = T) if (!is.function(learn)) stop("Wrong or absent function: ", fname) # Separating (calculating extensions and normals) counter <- 1 # Determining multi-class behaviour if (ddalpha$methodAggregation == "majority"){ for (i in 1:(ddalpha$numPatterns - 1)){ for (j in (i + 1):ddalpha$numPatterns){ # Creating a classifier classifier <- learn(ddalpha, i, j, ddalpha$patterns[[i]]$depths, ddalpha$patterns[[j]]$depths) classifier$index = counter classifier$index1 = i classifier$index2 = j if(class(classifier)=="list") class(classifier) <- paste0("ddalpha.", ddalpha$methodSeparator) else class(classifier) <- c(class(classifier), paste0("ddalpha.", ddalpha$methodSeparator)) # Adding the classifier to the list of classifiers ddalpha$classifiers[[counter]] <- classifier counter <- counter + 1 } } ddalpha$numClassifiers <- counter - 1 } if (ddalpha$methodAggregation == "sequent"){ for (i in 1:ddalpha$numPatterns){ anotherClass <- NULL for (j in 1:ddalpha$numPatterns){ if (j != i){ anotherClass <- rbind(anotherClass, ddalpha$patterns[[j]]$depths) } } classifier <- learn(ddalpha, i, -i, ddalpha$patterns[[i]]$depths, anotherClass) classifier$index = counter classifier$index1 = i classifier$index2 = -i if(class(classifier)=="list") class(classifier) <- paste0("ddalpha.", ddalpha$methodSeparator) else class(classifier) <- c(class(classifier), paste0("ddalpha.", ddalpha$methodSeparator)) # Adding the classifier to the list of classifiers ddalpha$classifiers[[i]] <- classifier } ddalpha$numClassifiers <- ddalpha$numPatterns } return (ddalpha) } .alpha_learn <- function(ddalpha, index1, index2, depths1, depths2){ points <- as.vector(t(rbind(depths1, depths2))) numClass1 <- nrow(depths1) numClass2 <- nrow(depths2) numPoints <- numClass1 + numClass2 dimension <- ncol(depths1) cardinalities <- c(numClass1, numClass2) upToPower <- ddalpha$maxDegree minFeatures <- 2 maxExtDimension <- (factorial(dimension + upToPower) / (factorial(dimension)*factorial(upToPower))) - 1; p <- .C("AlphaLearnCV", as.double(points), as.integer(numPoints), as.integer(dimension), as.integer(cardinalities), as.integer(upToPower), as.integer(ddalpha$numChunks), as.integer(minFeatures), as.integer(ddalpha$debug), portrait=double(maxExtDimension + 1))$portrait degree <- p[1]; extDimension <- (factorial(dimension + degree) / (factorial(dimension)*factorial(degree))) - 1; d <- 0 for (i in 2:(extDimension + 1)){ if (p[i] != 0){ d <- d + 1 } } return(list( hyperplane = p, degree = degree, dimProperties = length(p) - 1, dimFeatures = d )) } .alpha_classify <- function(ddalpha, classifier, depths){ toClassify <- as.double(as.vector(t(depths))) m = as.integer(nrow(depths)) q = as.integer(ncol(depths)) result <- .C("AlphaClassify", toClassify, m, q, as.integer(classifier$degree), as.double(classifier$hyperplane), output=integer(m))$output return(result) } .polynomial_learn <- function(ddalpha, index1, index2, depths1, depths2){ polynomial <- .polynomial_learn_C(ddalpha$maxDegree, rbind(depths1[,c(index1, index2)], depths2[,c(index1, index2)]), nrow(depths1), nrow(depths2), ddalpha$numChunks, ddalpha$seed) return(list( polynomial = polynomial$coefficients, degree = polynomial$degree, axis = polynomial$axis)) } .polynomial_classify <- function(ddalpha, classifier, depths){ x = ifelse(classifier$axis == 0, classifier$index1, classifier$index2) y = ifelse(classifier$axis == 0, classifier$index2, classifier$index1) result <- (- depths[,y]) for (obj in 1:nrow(depths)){ val <- depths[obj,x] for(j in 1:classifier$degree){ result[obj] <- result[obj] + classifier$polynomial[j]*val^j } if(classifier$axis != 0) result[obj] <- (- result[obj]) } return(result) } .ddalpha.learn.multiclass <- function(ddalpha){ fname = paste0(".", ddalpha$methodSeparator, "_learn") learn <- try(match.fun(fname), silent = T) if (!is.function(learn)) stop("Wrong or absent function: ", fname) classifier <- learn(ddalpha) if(class(classifier)=="list") class(classifier) <- paste0("ddalpha.", ddalpha$methodSeparator) else class(classifier) <- c(class(classifier), paste0("ddalpha.", ddalpha$methodSeparator)) ddalpha$classifiers[[1]] <- classifier ddalpha$numClassifiers <- 1 return (ddalpha) } #.ddalpha.learn.knnlm .knnlm_learn <- function(ddalpha){ x <- NULL y <- NULL for (i in 1:ddalpha$numPatterns){ x <- rbind(x, ddalpha$patterns[[i]]$depths) y <- c(y, rep(i - 1, ddalpha$patterns[[i]]$cardinality)) } x <- as.vector(t(x)) y <- as.vector(y) k <- .C("KnnLearnJK", as.double(x), as.integer(y), as.integer(ddalpha$numPoints), as.integer(ddalpha$numPatterns), as.integer(ddalpha$knnrange), as.integer(2), k=integer(1))$k return (list(knnK = k, knnX = x, knnY = y)) } .knnlm_classify <- function(ddalpha, classifier, depths){ z <- as.vector(t(depths)) output <- .C("KnnClassify", as.double(z), as.integer(nrow(depths)), as.double(classifier$knnX), as.integer(classifier$knnY), as.integer(ddalpha$numPoints), as.integer(ddalpha$numPatterns), as.integer(classifier$knnK), as.integer(2), output=integer(nrow(depths)))$output return(output+1) } .maxD_learn <- function(ddalpha) return(list()) .maxD_classify <- function(ddalpha, classifier, depths) apply(depths, 1, which.max) .ddalpha.learn.outsiders <- function(ddalpha, methodsOutsider = "LDA", settingsOutsider = NULL){ # Refine treatments if (is.null(settingsOutsider)){ ddalpha$methodsOutsider <- .parse.methods(methodsOutsider) }else{ ddalpha$methodsOutsider <- .parse.settings(ddalpha, settingsOutsider) } # Train treatments treatments = list(LDA = .lda_learn, QDA = .qda_learn, KNN = .knn_learn, KNNAff = .knnAff_learn, depth.Mahalanobis = .mah_learn, Ignore = NA, Mark = NA, RandEqual = NA, RandProp = NA) for (i in 1:length(ddalpha$methodsOutsider)){ .treatment = treatments[[ddalpha$methodsOutsider[[i]]$method]] if(is.null(.treatment)) stop("Unknown outsiders treatment method ", ddalpha$methodsOutsider[[i]]$method) if(!is.function(.treatment)) next; # need no training ddalpha$methodsOutsider[[i]] <- .treatment(ddalpha, ddalpha$methodsOutsider[[i]]) } return(ddalpha) } .ddalpha.count.depths <- function(ddalpha, objects, ...){ fname = paste0(".", ddalpha$methodDepth, "_depths") f <- (match.fun(fname)) if (!is.function(f)) stop(paste0("Wrong function for ", ddalpha$methodDepth)) # Count for all data if (is.null(objects)) for (i in 1:ddalpha$numPatterns){ objects <- rbind(objects, ddalpha$patterns[[i]]$points) } else ## if needtransform == 1 the data is already scaled # Transform the data once if (ddalpha$needtransform == 1){ objects <- ddalpha$patterns[[1]]$transformer(objects) } # Calculate depths for all classes together if (ddalpha$needtransform != 2){ res <- f(ddalpha, objects, ...) return(res) } # Calculate depths w.r.t. each class else { d <- NULL # w.r.t. each class for (cls in 1:ddalpha$numPatterns){ depth <- f(ddalpha, objects, class = cls, ...) d = cbind(d, depth) } return(d) } } .ddalpha.classify.outsiders<- function (objects, ddalpha, settings){ if (settings$method == "Ignore"){ return (.ignore_classify(nrow(objects))) } if (settings$method == "Mark"){ return (.right_classify(nrow(objects))) } if (settings$method == "RandEqual"){ return (.randequal_classify(nrow(objects), ddalpha)) } if (settings$method == "RandProp"){ return (.randprop_classify(nrow(objects), ddalpha, settings)) } treatments = list(LDA = .lda_classify, QDA = .qda_classify, KNN = .knn_classify, KNNAff = .knnAff_classify, depth.Mahalanobis = .mah_classify) .treatment = treatments[[settings$method]] if(is.null(.treatment)) stop("Unknown outsiders treatment method ", settings$method) return(.treatment(objects, ddalpha, settings)) } ################################################################################ # Functions used for intermediate calculations and checks are presented below ################################################################################ .are_classifiable <- function(objects, points, cardinalities){ convexes <- .count_convexes(objects, points, cardinalities) return (ifelse(rowSums(convexes)>0,1,0)) } .count_convexes <- function(objects, points, cardinalities, seed = 0){ if (is.na(seed)) seed = 0 x <- as.vector(t(points)) dimension <- ncol(points) numClasses <- length(cardinalities) o <- as.vector(t(objects)) numObjects <- nrow(objects) result <- .C("IsInConvexes", as.double(x), as.integer(dimension), as.integer(cardinalities), as.integer(numClasses), as.double(o), as.integer(numObjects), as.integer(seed), isInConvexes=integer(numObjects*numClasses))$isInConvexes result <- matrix(result, byrow = T, ncol = numClasses) return (result) } .halfspace_space <- function(ddalpha){ points <- NULL cardinalities <- NULL for (i in 1:ddalpha$numPatterns){ points <- rbind(points, ddalpha$patterns[[i]]$points) cardinalities <- c(cardinalities, ddalpha$patterns[[i]]$cardinality) } x <- as.vector(t(points)) c <- as.vector(cardinalities) k <- ddalpha$numDirections method = ddalpha$dmethod if (method == 0){ if (ddalpha$sameDirections){ rez <- .C("HDSpace", as.double(x), as.integer(ncol(points)), as.integer(c), as.integer(ddalpha$numPatterns), as.integer(k), as.integer(1), as.integer(ddalpha$seed), dspc=double(nrow(points)*ddalpha$numPatterns), dirs=double(k*ncol(points)), prjs=double(k*nrow(points))) return (list(dspace=matrix(rez$dspc, nrow=nrow(points), ncol=ddalpha$numPatterns, byrow=TRUE), directions=rez$dirs, projections=rez$prjs)) }else{ rez <- .C("HDSpace", as.double(x), as.integer(ncol(points)), as.integer(c), as.integer(ddalpha$numPatterns), as.integer(k), as.integer(0), as.integer(ddalpha$seed), dspc=double(nrow(points)*ddalpha$numPatterns), dirs=double(k*ncol(points)), prjs=double(k*nrow(points))) return (list(dspace=matrix(rez$dspc, nrow=nrow(points), ncol=ddalpha$numPatterns, byrow=TRUE), directions=0, projections=0)) } } else if (method %in% 1:3){ ds <- .C("HDepthSpaceEx", as.double(x), as.double(x), as.integer(c), as.integer(length(cardinalities)), as.integer(nrow(points)), as.integer(ncol(points)), as.integer(method), depths=double(nrow(points)*length(cardinalities)))$depths return (list(dspace=matrix(ds, nrow=nrow(points), ncol=ddalpha$numPatterns, byrow=F))) } else stop("wrong choise of the algorithm, method = ", method) } .halfspace_depths <- function(ddalpha, objects){ points <- NULL cardinalities <- NULL for (i in 1:ddalpha$numPatterns){ points <- rbind(points, ddalpha$patterns[[i]]$points) cardinalities <- c(cardinalities, ddalpha$patterns[[i]]$cardinality) } x <- as.vector(t(points)) y <- as.vector(t(objects)) c <- as.vector(cardinalities) k <- ddalpha$numDirections method <- ddalpha$dmethod if (method == 0){ if (ddalpha$sameDirections){ result <- .C("HDepth", as.double(x), as.double(y), as.integer(nrow(objects)), as.integer(ncol(points)), as.integer(c), as.integer(ddalpha$numPatterns), as.double(ddalpha$directions), as.double(ddalpha$projections), as.integer(k), as.integer(1), as.integer(ddalpha$seed), depths=double(ddalpha$numPatterns*nrow(objects))) }else{ result <- .C("HDepth", as.double(x), as.double(y), as.integer(nrow(objects)), as.integer(ncol(points)), as.integer(c), as.integer(ddalpha$numPatterns), dirs=double(k*ncol(points)), prjs=double(k*nrow(points)), as.integer(k), as.integer(0), as.integer(ddalpha$seed), depths=double(ddalpha$numPatterns*nrow(objects))) } } else if (method %in% 1:3){ ds <- .C("HDepthSpaceEx", as.double(x), as.double(y), as.integer(c), as.integer(length(cardinalities)), as.integer(nrow(objects)), as.integer(ncol(points)), as.integer(method), depths=double(nrow(objects)*length(cardinalities)))$depths depths <- matrix(ds, nrow=nrow(objects), ncol=length(cardinalities), byrow=F) return (depths) } else stop("wrong choise of the algorithm, method = ", method) return (matrix(result$depths, nrow=nrow(objects), ncol=ddalpha$numPatterns, byrow=TRUE)) } .zonoid_depths <- function(ddalpha, objects, ownPattern = 0){ depths <- NULL for (i in 1:ddalpha$numPatterns){ pattern <- ddalpha$patterns[[i]]$points x <- as.vector(t(pattern)) y <- as.vector(t(objects)) ds <- .C("ZDepth", as.double(x), as.double(y), as.integer(nrow(pattern)), as.integer(nrow(objects)), as.integer(ncol(pattern)), as.integer(ddalpha$seed), depths=double(nrow(objects)))$depths if (i == ownPattern){ ds <- replace(ds, which(ds < 1/nrow(pattern) - sqrt(.Machine$double.eps)), 1/nrow(pattern)) }else{ ds <- replace(ds, which(ds < 1/nrow(pattern) - sqrt(.Machine$double.eps)), 0) } depths <- cbind(depths, ds) } return (depths) } .estimate_moments <- function(ddalpha){ for (i in 1:ddalpha$numPatterns){ if (ddalpha$mahEstimate == "moment"){ ddalpha$patterns[[i]]$center <- colMeans(ddalpha$patterns[[i]]$points) ddalpha$patterns[[i]]$cov <- cov(ddalpha$patterns[[i]]$points) try( ddalpha$patterns[[i]]$sigma <- solve(ddalpha$patterns[[i]]$cov) ) } if (ddalpha$mahEstimate == "MCD"){ try( estimate <- covMcd(ddalpha$patterns[[i]]$points, ddalpha$mahParMcd) ) try( ddalpha$patterns[[i]]$center <- estimate$center ) try( ddalpha$patterns[[i]]$cov <- estimate$cov ) try( ddalpha$patterns[[i]]$sigma <- solve(estimate$cov) ) } } return(ddalpha) } .Mahalanobis_learn <- function(ddalpha){ if (is.null(ddalpha$mahPriors)){ ddalpha$mahPriors <- c() for (i in 1:ddalpha$numPatterns){ ddalpha$mahPriors[i] <- ddalpha$patterns[[i]]$cardinality/ddalpha$numPoints } } ddalpha <- .estimate_moments(ddalpha) for (i in 1:ddalpha$numPatterns){ ddalpha$patterns[[i]]$depths <- .Mahalanobis_depths(ddalpha, ddalpha$patterns[[i]]$points) } return(ddalpha) } .Mahalanobis_depths <- function(ddalpha, objects){ depths <- NULL for (j in 1:ddalpha$numPatterns){ depths <- cbind(depths, .Mahalanobis_depth (objects, center = ddalpha$patterns[[j]]$center, sigma = ddalpha$patterns[[j]]$sigma)) } return (depths) } .Mahalanobis_depth <- function(points, center = colMeans(points), sigma = solve(cov(points))){ if (is.data.frame(points)) points <- as.matrix(points, drop = F) if(is.vector(points)) points <- t(as.matrix(points, drop = F)) if (!is.matrix(points)) stop("Wrong format of 'points'") i = 1; step = 200 d <- NULL while (i<=nrow(points)){ tmp1 <- t(t(points[i:min(i+step, nrow(points)),, drop = F]) - center) dd <- diag(tmp1 %*% sigma %*% t(tmp1)) d <- c(d,1/(1 + dd)) i = i+1+step } # d <- 1/(1 + (points - center) %*% sigma %*% t(points - center)) return (d) } .projection_space <- function(ddalpha){ points <- NULL cardinalities <- NULL for (i in 1:ddalpha$numPatterns){ points <- rbind(points, ddalpha$patterns[[i]]$points) cardinalities <- c(cardinalities, ddalpha$patterns[[i]]$cardinality) } if (ddalpha$dmethod == "random"){ x <- as.vector(t(points)) y <- as.vector(t(points)) c <- as.vector(cardinalities) k <- ddalpha$numDirections result <- .C("ProjectionDepth", as.double(x), as.double(y), as.integer(nrow(points)), as.integer(ncol(points)), as.integer(c), as.integer(ddalpha$numPatterns), dirs=double(k*ncol(points)), prjs=double(k*nrow(points)), as.integer(k), as.integer(1), as.integer(ddalpha$seed), dspc=double(ddalpha$numPatterns*nrow(points))) return (list(dspace=matrix(result$dspc, nrow=nrow(points), ncol=ddalpha$numPatterns, byrow=TRUE), directions=result$dirs, projections=result$prjs)) } if (ddalpha$dmethod == "linearize"){ depths <- NULL for (i in 1:ddalpha$numPatterns){ ds <- .zdepth(ddalpha$patterns[[i]]$points, points) depths <- cbind(depths, ds) } return (list(dspace=depths)) } } .projection_depths <- function(ddalpha, objects){ points <- NULL cardinalities <- NULL for (i in 1:ddalpha$numPatterns){ points <- rbind(points, ddalpha$patterns[[i]]$points) cardinalities <- c(cardinalities, ddalpha$patterns[[i]]$cardinality) } if (ddalpha$dmethod == "random"){ x <- as.vector(t(points)) y <- as.vector(t(objects)) c <- as.vector(cardinalities) k <- ddalpha$numDirections result <- .C("ProjectionDepth", as.double(x), as.double(y), as.integer(nrow(objects)), as.integer(ncol(points)), as.integer(c), as.integer(ddalpha$numPatterns), as.double(ddalpha$directions), as.double(ddalpha$projections), as.integer(k), as.integer(0), as.integer(ddalpha$seed), depths=double(ddalpha$numPatterns*nrow(objects))) return (matrix(result$depths, nrow=nrow(objects), ncol=ddalpha$numPatterns, byrow=TRUE)) } if (ddalpha$dmethod == "linearize"){ depths <- NULL for (i in 1:ddalpha$numPatterns){ ds <- .zdepth(ddalpha$patterns[[i]]$points, objects) depths <- cbind(depths, ds) } return (depths) } } .simplicialVolume_depths <- function(ddalpha, objects){ if (is.data.frame(objects)) objects = as.matrix(objects) depths <- NULL for (i in 1:ddalpha$numPatterns){ pattern <- ddalpha$patterns[[i]]$points points <- as.vector(t(pattern)) x <- as.vector(t(objects)) ds <- .C("OjaDepth", as.double(points), as.double(x), as.integer(nrow(pattern)), as.integer(nrow(objects)), as.integer(ncol(pattern)), as.integer(ddalpha$seed), as.integer(ddalpha$d_exact), as.integer(.longtoint(ddalpha$d_k)), depths=double(nrow(objects)))$depths depths <- cbind(depths, ds, deparse.level = 0) } return (depths) } .simplicial_depths <- function(ddalpha, objects){ if (is.data.frame(objects)) objects = as.matrix(objects) depths <- NULL for (i in 1:ddalpha$numPatterns){ pattern <- ddalpha$patterns[[i]]$points points <- as.vector(t(pattern)) x <- as.vector(t(objects)) ds <- .C("SimplicialDepth", as.double(points), as.double(x), as.integer(nrow(pattern)), as.integer(nrow(objects)), as.integer(ncol(pattern)), as.integer(ddalpha$seed), as.integer(ddalpha$d_exact), as.integer(.longtoint(ddalpha$d_k)), depths=double(nrow(objects)))$depths depths <- cbind(depths, ds, deparse.level = 0) } return (depths) } .spatial_learn <- function(ddalpha){ if (ddalpha$mahEstimate == "none"){ for (i in 1:ddalpha$numPatterns){ ddalpha$patterns[[i]]$center <- colMeans(ddalpha$patterns[[i]]$points) ddalpha$patterns[[i]]$cov <- NA } }else{ ddalpha <- .estimate_moments(ddalpha) } for (i in 1:ddalpha$numPatterns){ ddalpha$patterns[[i]]$depths <- .spatial_depths(ddalpha, ddalpha$patterns[[i]]$points) } return(ddalpha) } .spatialLocal_learn <- function(ddalpha){ ddalpha <- .estimate_moments(ddalpha) for (i in 1:ddalpha$numPatterns){ ddalpha$patterns[[i]]$depths <- .spatialLocal_depths(ddalpha, ddalpha$patterns[[i]]$points) } return(ddalpha) } .spatial_depths <- function(ddalpha, objects){ if (is.data.frame(objects)) objects = as.matrix(objects) depths <- NULL for (i in 1:ddalpha$numPatterns){ pattern <- ddalpha$patterns[[i]]$points mean <- ddalpha$patterns[[i]]$center cov <- ddalpha$patterns[[i]]$cov suppressWarnings( if(!is.na(cov)){ cov.eig <- eigen(cov) B <- cov.eig$vectors %*% diag(sqrt(cov.eig$values)) lambda <- solve(B) } else{ lambda = diag(ncol(pattern)) }) ds <- rep(-1, nrow(objects)) for (i in 1:nrow(objects)){ tmp1 <- t(lambda %*% (objects[i,] - t(pattern))) tmp1 <- tmp1[which(rowSums(tmp1) != 0),] tmp2 <- 1/sqrt(rowSums(tmp1^2)) ds[i] <- 1 - sqrt(sum((colSums(tmp2*tmp1)/nrow(pattern))^2)) } depths <- cbind(depths, ds) } return (depths) } .spatialLocal_depths <- function(ddalpha, objects){ depths <- NULL for (i in 1:ddalpha$numPatterns){ depths <- cbind(depths, depth.spatial.local(objects, ddalpha$patterns[[i]]$points, ddalpha$kernel.bandwidth[i])) } return (depths) } .NONE_depths <- function(ddalpha, objects){ depths <- matrix(0, ncol = ddalpha$numPatterns, nrow = nrow(objects)) return (depths) } #========================================================== .alpha_learnOLD <- function(maxDegree, data, numClass1, numClass2, numChunks, debug = F){ points <- as.vector(t(data)) numPoints <- numClass1 + numClass2 dimension <- ncol(data) cardinalities <- c(numClass1, numClass2) upToPower <- maxDegree minFeatures <- 2 maxExtDimension <- (factorial(dimension + maxDegree) / (factorial(dimension)*factorial(maxDegree))) - 1; p <- .C("AlphaLearnCV", as.double(points), as.integer(numPoints), as.integer(dimension), as.integer(cardinalities), as.integer(upToPower), as.integer(numChunks), as.integer(minFeatures), as.integer(debug), portrait=double(maxExtDimension + 1))$portrait degree <- p[1]; extDimension <- (factorial(dimension + degree) / (factorial(dimension)*factorial(degree))) - 1; d <- 0 for (i in 2:(extDimension + 1)){ if (p[i] != 0){ d <- d + 1 } } return(list(por=p,dim=d,deg=degree)) } .parse.methods <- function(methods){ if (!is.vector(methods) || length(methods) <= 0){return(list())} methods.refined <- unique(toupper(methods)) treatments.settings <- list() counter <- 1 for (i in 1:length(methods.refined)){ supported <- FALSE if (methods.refined[i] == "LDA"){ supported <- TRUE treatment.settings <- structure( list(name = "LDA", method = "LDA", priors = NULL, lda = NULL), .Names = c("name", "method", "priors", "lda")) } if (methods.refined[i] == "QDA"){ supported <- TRUE treatment.settings <- structure( list(name = "QDA", method = "QDA", priors = NULL, qda = NULL)) } if (methods.refined[i] == "KNNAFF"){ supported <- TRUE treatment.settings <- structure( list(name = "KNNAff", method = "KNNAff", knnAff.methodAggregation = "majority", knnAff.range = -1, knnAff.k = -1, knnAff.classifiers = NULL), .Names = c("name", "method", "knnAff.methodAggregation", "knnAff.range", "knnAff.k", "knnAff.classifiers")) } if (methods.refined[i] == "KNN"){ supported <- TRUE treatment.settings <- structure( list(name = "KNN", method = "KNN", knn.range = -1, knn.k = -1, knn.train = NULL, knn.cl = NULL), .Names = c("name", "method", "knn.range", "knn.k", "knn.train", "knn.cl")) } if (methods.refined[i] == "DEPTH.MAHALANOBIS"){ supported <- TRUE treatment.settings <- structure( list(name = "depth.Mahalanobis", method = "depth.Mahalanobis", mah.estimate = "moment", priors = NULL, mah.classes = NULL, mcd.alpha = 0.5), .Names = c("name", "method", "mah.estimate", "priors", "mah.classes", "mcd.alpha")) } if (methods.refined[i] == "RANDEQUAL"){ supported <- TRUE treatment.settings <- structure( list(name = "RandEqual", method = "RandEqual"), .Names = c("name", "method")) } if (methods.refined[i] == "RANDPROP"){ supported <- TRUE treatment.settings <- structure( list(name = "RandProp", method = "RandProp", priors = NULL), .Names = c("name", "method", "priors")) } if (methods.refined[i] == "IGNORE"){ supported <- TRUE treatment.settings <- structure( list(name = "Ignore", method = "Ignore"), .Names = c("name", "method")) } if (supported){ treatments.settings[[counter]] <- treatment.settings counter <- counter + 1 } } return(treatments.settings) } .parse.settings <- function(ddalpha, settings){ if (!is.list(settings) || length(settings) <= 0){return(list())} treatments.names <- c() treatments.settings <- list() counter <- 1 for (i in 1:length(settings)){ supported <- FALSE if (!is.list(settings[[i]]) || is.null(settings[[i]]$name) || is.null(settings[[i]]$method)){ warning("In treatment number ", i, ": The treatment has unacceptable format. The treatment will be ignored") next } if (!is.character(settings[[i]]$method) || length(settings[[i]]$method) != 1 || !(toupper(settings[[i]]$method) %in% ddalpha$treatments)){ warning("In treatment number ", i, ": The method name of the treatment is not acceptable. The treatment will be ignored") next } if (!is.character(settings[[i]]$name) || length(settings[[i]]$name) != 1){ warning("In treatment number ", i, ": The name of the treatment is not acceptable. The treatment will be ignored") next } if (settings[[i]]$name %in% treatments.names){ warning("In treatment number ", i, ": Treatment with the name ", settings[[i]]$name, " already exists. The treatment will be ignored") next }else{ treatments.names <- c(treatments.names, settings[[i]]$name) } if (toupper(settings[[i]]$method) == "LDA"){ tmp.name <- settings[[i]]$name if (!is.vector(settings[[i]]$priors, mode = "double") || is.na(min(settings[[i]]$priors)) || length(settings[[i]]$priors) != ddalpha$numPatterns || min(settings[[i]]$priors) <= 0 || max(settings[[i]]$priors) <= 0){ warning("In treatment number ", i, ": Argument \"priors\" not specified correctly. Defaults in the form of class portions are applied") tmp.priors <- NULL }else{ tmp.priors <- settings[[i]]$priors/sum(settings[[i]]$priors) } treatment.settings <- structure( list(name = tmp.name, method = "LDA", priors = tmp.priors, lda = NULL), .Names = c("name", "method", "priors", "lda")) supported <- TRUE } if (toupper(settings[[i]]$method) == "KNNAFF"){ tmp.name <- settings[[i]]$name if (!is.character(settings[[i]]$knnAff.methodAggregation) || length(settings[[i]]$knnAff.methodAggregation) != 1 || !(settings[[i]]$knnAff.methodAggregation %in% c("majority", "sequent"))){ warning("In treatment number ", i, ": Argument \"knnAff.methodAggregation\" not specified correctly. \"majority\" is used as a default value") tmp.knnAff.methodAggregation <- "majority" }else{ tmp.knnAff.methodAggregation <- settings[[i]]$knnAff.methodAggregation } if (!is.numeric(settings[[i]]$knnAff.range) || is.na(settings[[i]]$knnAff.range) || length(settings[[i]]$knnAff.range) != 1 || !.is.wholenumber(settings[[i]]$knnAff.range) || !(settings[[i]]$knnAff.range >= 2 && settings[[i]]$knnAff.range <= (ddalpha$patterns[[ddalpha$numPatterns]]$cardinality + ddalpha$patterns[[ddalpha$numPatterns - 1]]$cardinality - 1) || settings[[i]]$knnAff.range == -1)){ warning("In treatment number ", i, ": Argument \"knnAff.range\" not specified correctly. Defaults are applied") tmp.knnAff.range <- -1 }else{ tmp.knnAff.range <- settings[[i]]$knnAff.range } if (!is.numeric(settings[[i]]$knnAff.k) || is.na(settings[[i]]$knnAff.k) || length(settings[[i]]$knnAff.k) != 1 || !.is.wholenumber(settings[[i]]$knnAff.k) || !(settings[[i]]$knnAff.k >= 1 && settings[[i]]$knnAff.k <= (ddalpha$patterns[[ddalpha$numPatterns]]$cardinality + ddalpha$patterns[[ddalpha$numPatterns - 1]]$cardinality) || settings[[i]]$knnAff.k == -1)){ warning("In treatment number ", i, ": Argument \"knnAff.k\" not specified correctly. Defaults are applied") tmp.knnAff.k <- -1 }else{ tmp.knnAff.k <- settings[[i]]$knnAff.k } treatment.settings <- structure( list(name = tmp.name, method = "KNNAff", knnAff.methodAggregation = tmp.knnAff.methodAggregation, knnAff.range = tmp.knnAff.range, knnAff.k = tmp.knnAff.k, knnAff.classifiers = NULL), .Names = c("name", "method", "knnAff.methodAggregation", "knnAff.range", "knnAff.k", "knnAff.classifiers")) supported <- TRUE } if (toupper(settings[[i]]$method) == "KNN"){ tmp.name <- settings[[i]]$name if (!is.numeric(settings[[i]]$knn.range) || is.na(settings[[i]]$knn.range) || length(settings[[i]]$knn.range) != 1 || !.is.wholenumber(settings[[i]]$knn.range) || !(settings[[i]]$knn.range >= 2 && settings[[i]]$knn.range <= (ddalpha$numPoints - 1) || settings[[i]]$knn.range == -1)){ warning("In treatment number ", i, ": Argument \"knn.range\" not specified correctly. Defaults are applied") tmp.knn.range <- -1 }else{ tmp.knn.range <- settings[[i]]$knn.range } if (!is.numeric(settings[[i]]$knn.k) || is.na(settings[[i]]$knn.k) || length(settings[[i]]$knn.k) != 1 || !.is.wholenumber(settings[[i]]$knn.k) || !(settings[[i]]$knn.k >= 1 && settings[[i]]$knn.k <= (ddalpha$numPoints) || settings[[i]]$knn.k == -1)){ warning("In treatment number ", i, ": Argument \"knn.k\" not specified correctly. Defaults are applied") tmp.knn.k <- -1 }else{ tmp.knn.k <- settings[[i]]$knn.k } treatment.settings <- structure( list(name = tmp.name, method = "KNN", knn.range = tmp.knn.range, knn.k = tmp.knn.k, knn.train = NULL, knn.cl = NULL), .Names = c("name", "method", "knn.range", "knn.k", "knn.train", "knn.cl")) supported <- TRUE } if (toupper(settings[[i]]$method) == "DEPTH.MAHALANOBIS"){ tmp.name <- settings[[i]]$name if (!is.character(settings[[i]]$mah.estimate) || length(settings[[i]]$mah.estimate) != 1 || !(settings[[i]]$mah.estimate %in% c("moment", "MCD"))){ warning("In treatment number ", i, ": Argument \"mah.estimate\" not specified correctly. \"moment\" is used as a default value") tmp.mah.estimate <- "moment" }else{ tmp.mah.estimate <- settings[[i]]$mah.estimate } if (!is.vector(settings[[i]]$priors, mode = "double") || is.na(min(settings[[i]]$priors)) || length(settings[[i]]$priors) != ddalpha$numPatterns || min(settings[[i]]$priors) <= 0 || max(settings[[i]]$priors) <= 0){ warning("In treatment number ", i, ": Argument \"priors\" not specified correctly. Defaults in the form of class portions are applied") tmp.priors <- NULL }else{ tmp.priors <- settings[[i]]$priors/sum(settings[[i]]$priors) } if (!is.vector(settings[[i]]$mcd.alpha, mode = "double") || is.na(min(settings[[i]]$mcd.alpha)) || length(settings[[i]]$mcd.alpha) != 1 || settings[[i]]$mcd.alpha < 0.5 || settings[[i]]$mcd.alpha > 1){ if (tmp.mah.estimate == "MCD"){ warning("In treatment number ", i, ": Argument \"mcd.alpha\" not specified correctly. 0.75 is used as a default value") } tmp.mcd.alpha <- 0.75 }else{ tmp.mcd.alpha <- settings[[i]]$mcd.alpha } treatment.settings <- structure( list(name = tmp.name, method = "depth.Mahalanobis", mah.estimate = tmp.mah.estimate, priors = tmp.priors, mah.classes = NULL, mcd.alpha = tmp.mcd.alpha), .Names = c("name", "method", "mah.estimate", "priors", "mah.classes", "mcd.alpha")) supported <- TRUE } if (toupper(settings[[i]]$method) == "RANDEQUAL"){ tmp.name <- settings[[i]]$name treatment.settings <- structure( list(name = tmp.name, method = "RandEqual"), .Names = c("name", "method")) supported <- TRUE } if (toupper(settings[[i]]$method) == "RANDPROP"){ tmp.name <- settings[[i]]$name if (!is.vector(settings[[i]]$priors, mode = "double") || is.na(min(settings[[i]]$priors)) || length(settings[[i]]$priors) != ddalpha$numPatterns || min(settings[[i]]$priors) <= 0 || max(settings[[i]]$priors) <= 0){ warning("In treatment number ", i, ": Argument \"priors\" not specified correctly. Defaults in the form of class portions are applied") tmp.priors <- NULL }else{ tmp.priors <- settings[[i]]$priors/sum(settings[[i]]$priors) } treatment.settings <- structure( list(name = tmp.name, method = "RandProp", priors = NULL), .Names = c("name", "method", "priors")) supported <- TRUE } if (toupper(settings[[i]]$method) == "IGNORE"){ tmp.name <- settings[[i]]$name treatment.settings <- structure( list(name = tmp.name, method = "Ignore"), .Names = c("name", "method")) supported <- TRUE } if (supported){ treatments.settings[[counter]] <- treatment.settings counter <- counter + 1 } } return (treatments.settings) } .lda_learn <- function(ddalpha, settings){ settings$lda <- MASS::lda(formula=as.formula("CLASS ~ ."), data=ddalpha$raw, priors=settings$priors) settings$priors <- settings$lda$prior return (settings) } .lda_classify <- function(objects, ddalpha, settings){ if (!is.data.frame(objects)) objects = as.data.frame(objects) names(objects) <- names(ddalpha$raw)[1:ncol(objects)] return (as.list(predict(settings$lda, objects)$class)) } .qda_learn <- function(ddalpha, settings){ settings$qda <- MASS::qda(formula=as.formula("CLASS ~ ."), data=ddalpha$raw, priors=settings$priors) settings$priors <- settings$qda$prior return (settings) } .qda_classify <- function(objects, ddalpha, settings){ if (!is.data.frame(objects)) objects = as.data.frame(objects) names(objects) <- names(ddalpha$raw)[1:ncol(objects)] return (as.list(predict(settings$qda, objects)$class)) } .knnAff_learn <- function(ddalpha, settings){ counter <- 1 # Determining multi-class behaviour if (settings$knnAff.methodAggregation == "majority"){ for (i in 1:(ddalpha$numPatterns - 1)){ for (j in (i + 1):ddalpha$numPatterns){ # Creating a classifier classifier.index <- counter classifier.index1 <- i classifier.index2 <- j classifier.points <- as.double(t(rbind(ddalpha$patterns[[i]]$points, ddalpha$patterns[[j]]$points))) classifier.cardinalities <- as.integer(c(ddalpha$patterns[[i]]$cardinality, ddalpha$patterns[[j]]$cardinality)) if (settings$knnAff.k < 1 || settings$knnAff.k > (ddalpha$patterns[[i]]$cardinality + ddalpha$patterns[[j]]$cardinality - 1)) { if (settings$knnAff.range < 2 || settings$knnAff.range > (ddalpha$patterns[[i]]$cardinality + ddalpha$patterns[[j]]$cardinality - 1)){ maxk <- 10*( (ddalpha$numPoints)^(1/ddalpha$dimension) ) + 1 }else{ maxk <- settings$knnAff.range } maxk <- min(maxk, ddalpha$patterns[[i]]$cardinality + ddalpha$patterns[[j]]$cardinality - 1) maxk <- max(maxk, 2) classifier.range <- maxk classifier.k <- as.integer(.C("KnnAffInvLearnJK", classifier.points, as.integer(ddalpha$dimension), classifier.cardinalities, as.integer(maxk), k=integer(1))$k) }else{ classifier.range <- settings$knnAff.range classifier.k <- as.integer(settings$knnAff.k) } # Adding the classifier to the list of classifiers settings$knnAff.classifiers[[counter]] <- list(index = classifier.index, index1 = classifier.index1, index2 = classifier.index2, points = classifier.points, cardinalities = classifier.cardinalities, k = classifier.k, range = classifier.range) counter <- counter + 1 } } } if (settings$knnAff.methodAggregation == "sequent"){ for (i in 1:ddalpha$numPatterns){ anotherClass <- NULL for (j in 1:ddalpha$numPatterns){ if (j != i){ anotherClass <- rbind(anotherClass, ddalpha$patterns[[j]]$points) } } classifier.index <- counter classifier.index1 <- i classifier.index2 <- -1 classifier.points <- as.double(t(rbind(ddalpha$patterns[[i]]$points, anotherClass))) classifier.cardinalities <- as.integer(c(ddalpha$patterns[[i]]$cardinality, nrow(anotherClass))) if (settings$knnAff.k < 1 || settings$knnAff.k > ddalpha$numPoints) { if (settings$knnAff.range < 2 || settings$knnAff.range > (ddalpha$numPoints - 1)){ maxk <- 10*( (ddalpha$numPoints)^(1/ddalpha$dimension) ) + 1 }else{ maxk <- settings$knnAff.range } maxk <- min(maxk, ddalpha$numPoints - 1) maxk <- max(maxk, 2) classifier.range <- maxk classifier.k <- as.integer(.C("KnnAffInvLearnJK", classifier.points, as.integer(ddalpha$dimension), classifier.cardinalities, as.integer(maxk), k=integer(1))$k) }else{ classifier.range <- settings$knnAff.range classifier.k <- as.integer(settings$knnAff.k) } # Adding the classifier to the list of classifiers settings$knnAff.classifiers[[counter]] <- list(index = classifier.index, index1 = classifier.index1, index2 = classifier.index2, points = classifier.points, cardinalities = classifier.cardinalities, k = classifier.k, range = classifier.range) counter <- counter + 1 } } return (settings) } .knnAff_classify <- function(objects, ddalpha, settings){ # Correct input data if (!is.matrix(objects)){ objects <- matrix(objects, nrow=1) } # Initialization of the vote array votes <- matrix(rep(0, nrow(objects)*ddalpha$numPatterns), nrow=nrow(objects), ncol=ddalpha$numPatterns) for (i in 1:length(settings$knnAff.classifiers)){ res <- .C("KnnAffInvClassify", as.double(t(objects)), as.integer(nrow(objects)), settings$knnAff.classifiers[[i]]$points, as.integer(ddalpha$dimension), settings$knnAff.classifiers[[i]]$cardinalities, settings$knnAff.classifiers[[i]]$k, output=integer(nrow(objects)))$output for (j in 1:nrow(objects)){ if (res[j] == 0){ votes[j,settings$knnAff.classifiers[[i]]$index1] <- votes[j,settings$knnAff.classifiers[[i]]$index1] + 1 }else{ votes[j,settings$knnAff.classifiers[[i]]$index2] <- votes[j,settings$knnAff.classifiers[[i]]$index2] + 1 } } } # Collect results results <- list() for (i in 1:nrow(objects)){ results[[i]] <- ddalpha$patterns[[which.max(votes[i,])]]$name } return (results) } .knn_learn <- function(ddalpha, settings){ settings$knn.train <- ddalpha$raw[,1:ddalpha$dimension] settings$knn.cl <- ddalpha$raw[,ddalpha$dimension + 1] if (settings$knn.k < 1 || settings$knn.k > ddalpha$numPoints){ if (settings$knn.range < 1 || settings$knn.range > ddalpha$numPoints - 1){ settings$knn.range <- 10*( (ddalpha$numPoints)^(1/ddalpha$dimension) ) + 1 settings$knn.range <- min(settings$knn.range, ddalpha$numPoints - 1) settings$knn.range <- max(settings$knn.range, 2) } cv.err <- c() ks <- 1:settings$knn.range for (i in ks){ newpre <- as.vector(class::knn.cv(settings$knn.train, settings$knn.cl, k = i)) cv.err <- c(cv.err, sum(settings$knn.cl != newpre)) } settings$knn.k <- ks[which.min(cv.err)] } return (settings) } .knn_classify <- function(objects, ddalpha, settings){ return (class::knn(settings$knn.train, objects, settings$knn.cl, settings$knn.k)) } .mah_learn <- function(ddalpha, settings){ settings$mah.classes <- list() if (is.null(settings$priors)){ settings$priors <- c() for (i in 1:ddalpha$numPatterns){ settings$priors[i] <- ddalpha$patterns[[i]]$cardinality/ddalpha$numPoints } } for (i in 1:ddalpha$numPatterns){ class.prior <- NULL class.mean <- NULL class.cov <- NULL class.sigma <- NULL class.prior <- settings$priors[i] if (settings$mah.estimate == "moment"){ class.mean <- colMeans(ddalpha$patterns[[i]]$points) class.cov <- cov(ddalpha$patterns[[i]]$points) class.sigma <- solve(class.cov) } if (settings$mah.estimate == "MCD"){ estimate <- robustbase::covMcd(ddalpha$patterns[[i]]$points, alpha=settings$mcd.alpha) class.mean <- estimate$center class.cov <- estimate$cov class.sigma <- solve(class.cov) } settings$mah.classes[[i]] <- structure( list(index = i, prior = class.prior, mean = class.mean, cov = class.cov, sigma = class.sigma), .Names = c("index", "prior", "mean", "cov", "sigma")) } return (settings) } .mah_classify <- function(objects, ddalpha, settings){ # Correct input data if (!is.matrix(objects)){ objects <- matrix(objects, nrow=1) } # Initialization of the vote array votes <- matrix(rep(0, nrow(objects)*ddalpha$numPatterns), nrow=nrow(objects), ncol=ddalpha$numPatterns) for (i in 1:nrow(objects)){ for (j in 1:length(settings$mah.classes)){ votes[i,j] <- settings$mah.classes[[j]]$prior*.Mahalanobis_depth(objects[i,], settings$mah.classes[[j]]$mean, settings$mah.classes[[j]]$sigma) } } # Collect results results <- list() for (i in 1:nrow(objects)){ results[[i]] <- ddalpha$patterns[[which.max(votes[i,])]]$name } return (results) } .ignore_classify <- function(nobjects){ return (as.list(rep("Ignored", nobjects))) } .right_classify <- function(nobjects){ return (as.list(rep("Outsider", nobjects))) } .randequal_classify <- function(nobjects, ddalpha){ results <- list() for (i in 1:nobjects){ results[[i]] <- ddalpha$patterns[[sample(1:ddalpha$numPatterns,1)]]$name } return (results) } .randprop_classify <- function(nobjects, ddalpha, settings){ priors <- settings$priors if (is.null(priors)){ priors <- c() for (i in 1:ddalpha$numPatterns){ priors[i] <- ddalpha$patterns[[i]]$cardinality/ddalpha$numPoints } } results <- list() for (i in 1:nobjects){ results[[i]] <- ddalpha$patterns[[sample(1:ddalpha$numPatterns,1,prob = priors)]]$name } return (results) } # Function is taken from the R-documentation, "Examples" to the function "is.integer" .is.wholenumber <- function(x, tol = .Machine$double.eps^0.5) abs(x - round(x)) < tol summary.ddalpha <- function(object, printseparators = T, ...){ x = object if(!is.null(x$call)){ cat("Call: ", format(x$call), "\nResulting table: ", paste(x$colnames, collapse = ", "),"\n") } cat("ddalpha:\n") cat("\t num.points = ", x$numPoints, ", dimension = ", x$dimension, ", num.patterns = ", x$numPatterns, "\n", sep="") cat("\t depth = \"", x$methodDepth, "\"\n", sep="") cat("\t separator = \"", x$methodSeparator, "\"\n", sep="") cat("\t aggregation.method = \"", x$methodAggregation, "\"\n", sep="") if (is.numeric(x$numChunks)) cat("\t num.chunks =", x$numChunks, "\n") if (is.numeric(x$numDirections)) cat("\t num.directions =", x$numDirections, "\n") cat("\t use.convex =", x$useConvex, "\n") if (is.numeric(x$maxDegree)) cat("\t max.degree =", x$maxDegree, "\n") cat("patterns:\n") for (i in 1:length(x$patterns)){ cat("\t ");print(x$patterns[[i]]) } cat("num.classifiers = ", x$numClassifiers, "\n") if(x$numClassifiers == 1 || printseparators) for (i in 1:x$numClassifiers){ print(x$classifiers[[i]], prefix = "\t ") } cat("outsider.methods:\n") if (is.null(x$methodsOutsider)){ cat ("\t Absent\n", sep="") }else{ for (i in 1:length(x$methodsOutsider)){ cat ("\t \"",x$methodsOutsider[[i]]$name, "\":\n", sep="") cat("\t\t method = \"", x$methodsOutsider[[i]]$method, "\"\n", sep="") if ( x$methodsOutsider[[i]]$method == "LDA" || x$methodsOutsider[[i]]$method == "RandProp" || x$methodsOutsider[[i]]$method == "depth.Mahalanobis"){ cat("\t\t priors =", x$methodsOutsider[[i]]$priors, "\n") } if (x$methodsOutsider[[i]]$method == "KNNAff"){ cat("\t\t aggregation.method = \"", x$methodsOutsider[[i]]$knnAff.methodAggregation, "\"\n", sep="") for (j in 1:length(x$methodsOutsider[[i]]$knnAff.classifiers)){ cat("\t\t k.range = ", format(paste("1:", x$methodsOutsider[[i]]$knnAff.classifiers[[j]]$range, sep=""), justify="right", width=10), sep="") } cat("\n") for (j in 1:length(x$methodsOutsider[[i]]$knnAff.classifiers)){ cat("\t\t k = ", format( x$methodsOutsider[[i]]$knnAff.classifiers[[j]]$k, justify="right", width=10), sep="") } cat("\n") } if (x$methodsOutsider[[i]]$method == "KNN"){ cat("\t\t k.range = 1:", x$methodsOutsider[[i]]$knn.range, "\n", sep="") cat("\t\t k =", x$methodsOutsider[[i]]$knn.k, "\n") } if (x$methodsOutsider[[i]]$method == "depth.Mahalanobis"){ cat("\t\t estimate = \"", x$methodsOutsider[[i]]$mah.estimate, "\"\n", sep="") if (x$methodsOutsider[[i]]$mah.estimate == "MCD"){ cat("\t\t mcd.alpha = ", x$methodsOutsider[[i]]$mcd.alpha, "\n") } } } } invisible(x) } print.ddalpha <- function(x, printseparators = F, ...){ if(!is.null(x$call)){ cat("Call: ", format(x$call), "\nResulting table: ", paste(x$colnames, collapse = ", "),"\n") } cat("depth = \"", x$methodDepth, "\"\n", sep="") cat("separator = \"", x$methodSeparator, "\"\n", sep="") cat("aggregation.method = \"", x$methodAggregation, "\"\n", sep="") cat("patterns:\n") for (i in 1:length(x$patterns)){ cat("\t ");print(x$patterns[[i]]) } cat("num.classifiers = ", x$numClassifiers, "\n") if(x$numClassifiers == 1 || printseparators) for (i in 1:x$numClassifiers){ print(x$classifiers[[i]], prefix = "\t ", full = F) } cat("outsider.methods:\n") if (is.null(x$methodsOutsider)){ cat ("\t Absent\n", sep="") }else{ for (i in 1:length(x$methodsOutsider)){ cat("\t method = \"", x$methodsOutsider[[i]]$method, "\"\n", sep="") if ( x$methodsOutsider[[i]]$method == "LDA" || x$methodsOutsider[[i]]$method == "RandProp" || x$methodsOutsider[[i]]$method == "depth.Mahalanobis"){ cat("\t priors =", x$methodsOutsider[[i]]$priors, "\n") } if (x$methodsOutsider[[i]]$method == "KNNAff"){ cat("\t aggregation.method = \"", x$methodsOutsider[[i]]$knnAff.methodAggregation, "\"\n", sep="") for (j in 1:length(x$methodsOutsider[[i]]$knnAff.classifiers)){ cat("\t k.range = ", format(paste("1:", x$methodsOutsider[[i]]$knnAff.classifiers[[j]]$range, sep=""), justify="right", width=10), sep="") } cat("\n") for (j in 1:length(x$methodsOutsider[[i]]$knnAff.classifiers)){ cat("\t k = ", format( x$methodsOutsider[[i]]$knnAff.classifiers[[j]]$k, justify="right", width=10), sep="") } cat("\n") } if (x$methodsOutsider[[i]]$method == "KNN"){ cat("\t k.range = 1:", x$methodsOutsider[[i]]$knn.range, "\n", sep="") cat("\t k =", x$methodsOutsider[[i]]$knn.k, "\n") } if (x$methodsOutsider[[i]]$method == "depth.Mahalanobis"){ cat("\t estimate = \"", x$methodsOutsider[[i]]$mah.estimate, "\"\n", sep="") if (x$methodsOutsider[[i]]$mah.estimate == "MCD"){ cat("\t mcd.alpha = ", x$methodsOutsider[[i]]$mcd.alpha, "\n") } } } } invisible(x) } print.ddalpha.pattern <- function(x, ...){ cat("pattern[", x$index, "]:", sep="") cat("\t ", x$cardinality, " points, label = \"", x$name, "\"\n", sep="") invisible(x) } print.ddalpha.alpha <- function(x, prefix = "", full = T, ...){ if(full){ cat(prefix,x$index, ". alpha:\n", sep="") cat(prefix," degree: ", x$degree,"; axes: ", x$index1, ", ", x$index2, "\n", sep="") cat(prefix," hyperplane: ", paste(x$hyperplane, collapse = ", "), "\n", sep="") } else{ cat(prefix, x$index, ". degree: ", x$degree,"; axes: ", x$index1, ", ", x$index2, "\n", sep="") cat(prefix," hyperplane: ", paste(x$hyperplane, collapse = ", "), "\n", sep="") } invisible(x) } print.ddalpha.polynomial <- function(x, prefix = "", full = T,...){ if(full){ cat(prefix,x$index, ". polynomial:\n", sep="") cat(prefix," degree: ", x$degree,"; axes: ", x$index1, ", ", x$index2, ifelse(x$axis!=0, ", invert", ""), "\n", sep="") cat(prefix," polynomial: ", paste(x$polynomial, collapse = ", "), "\n", sep="") } else { cat(prefix,x$index, ". degree: ", x$degree,"; axes: ", x$index1, ", ", x$index2, ifelse(x$axis!=0, ", invert", ""), "\n", sep="") cat(prefix," polynomial: ", paste(x$polynomial, collapse = ", "), "\n", sep="") } invisible(x) } print.ddalpha.knnlm <- function(x, prefix = "", full = T,...){ if(full) cat(prefix,"knnlm: k = ", x$knnK, "\n", sep="") else cat(prefix,"k = ", x$knnK, "\n", sep="") invisible(x) } print.ddalpha.maxD <- function(x, prefix = "", full = T,...){ if(full) cat(prefix,"maximum depth separator\n") invisible(x) } # .ddalpha.learn.knnlm <- function(ddalpha){ # # # Prepare outputs and distance matrix # y <- NULL # allPoints <- NULL # for (i in 1:ddalpha$numPatterns){ # allPoints<- rbind(allPoints, ddalpha$patterns[[i]]$depths) # y <- c(y, rep(ddalpha$patterns[[i]]$name, ddalpha$patterns[[i]]$cardinality)) # } # # print(y) # dists <- knn.dist(allPoints, dist.meth="maximum") # # plot(ddalpha$patterns[[1]]$depths, col = "red", xlim=c(0,1), ylim=c(0,1)) # # points(ddalpha$patterns[[2]]$depths, col = "blue", xlim=c(0,1), ylim=c(0,1)) # # Cross-validate knn # cvErr <- c() # allIndices <- 1:ddalpha$numPoints # krange <- 10*( (ddalpha$numPoints)^(1/ddalpha$numPatterns) ) + 1 # krange <- min(krange, ceiling(ddalpha$numPoints/2)) # if (ddalpha$numPatterns == 2){krange <- min(krange, 50)} # krange <- max(krange, 2) # # cat("Range: 1:", krange, ".\n", sep="") # for (i in 1:krange){ # curPreErr <- 0 # for (j in 0:(ddalpha$numChunks - 1)){ # testSel <- allIndices[allIndices%%ddalpha$numChunks == j] # test <- allIndices[testSel] # train <- allIndices[-test] # # cat("1. Train: ", train, ", test: ", test, ".\n") # curPreErr <- curPreErr + sum(knn.predict(train, test, y, dists, k=i, agg.meth="majority", ties.meth="first") != y[test]) # } # cvErr <- c(cvErr, curPreErr) # # cat("i = ", i, "done.\n") # # print(cvErr) # } # # Collect results # ddalpha$knnK <- (1:krange)[which.min(cvErr)] # ddalpha$knnX <- allPoints # ddalpha$knnY <- y # ddalpha$knnD <- dists # # # print(ddalpha$knnK) # # return (ddalpha) # } ddalpha/R/knnaff.r0000644000176200001440000002120112745655010013477 0ustar liggesusersknnaff.train <- function(data, aggregation.method = "majority", range = -1, k = -1, i = 0){ knnaff <- knaff.create.structure(data) # Checks if (!is.character(aggregation.method) || length(aggregation.method) != 1 || !(aggregation.method %in% c("majority", "sequent"))){ warning("In treatment number ", i, ": Argument \"aggregation.method\" not specified correctly. \"majority\" is used as a default value") knnaff$methodAggregation <- "majority" }else{ knnaff$methodAggregation <- aggregation.method } if (!is.numeric(range) || is.na(range) || length(range) != 1 || !.is.wholenumber(range) || !(range >= 2 && range <= (knnaff$patterns[[knnaff$numPatterns]]$cardinality + knnaff$patterns[[knnaff$numPatterns - 1]]$cardinality - 1) || range == -1)){ warning("In treatment number ", i, ": Argument \"range\" not specified correctly. Defaults are applied") knnaff$range <- -1 }else{ knnaff$range <- range } if (!is.numeric(k) || is.na(k) || length(k) != 1 || !.is.wholenumber(k) || !(k >= 1 && k <= (knnaff$patterns[[knnaff$numPatterns]]$cardinality + knnaff$patterns[[knnaff$numPatterns - 1]]$cardinality) || k == -1)){ warning("In treatment number ", i, ": Argument \"k\" not specified correctly. Defaults are applied") knnaff$k <- -1 }else{ knnaff$k <- k } # Do leave-one-out cross-validation knnaff <- knnaff.docv(knnaff) return (knnaff) } knaff.create.structure <- function(data){ # Elemantary statistics dimension <- ncol(data) - 1 numOfPoints <- nrow(data) classNames <- unique(data[,dimension + 1]) numOfClasses <- length(classNames) # Ordering patterns according to their cardinalities classCardinalities <- rep(0, numOfClasses) for (i in 1:numOfClasses){ classCardinalities[i] <- nrow(data[data[,dimension + 1] == classNames[i],]) } # Creating pattern templates patterns <- as.list("") for (i in 1:numOfClasses){ maxCarIndex <- which.max(classCardinalities) # Creating a single template pattern.index <- i pattern.points <- data[data[,dimension + 1] == classNames[maxCarIndex], 1:dimension] pattern.name <- classNames[maxCarIndex] pattern.cardinality <- classCardinalities[maxCarIndex] pattern.votes <- 0 pattern <- structure( list(index = pattern.index, points = pattern.points, name = pattern.name, cardinality = pattern.cardinality, votes = pattern.votes), .Names = c("index", "points", "name", "cardinality", "votes")) # Adding pattern template to the list of patterns patterns[[i]] <- pattern # Deleting processed pattern classCardinalities[maxCarIndex] <- -1 } # Creating overall structure knnaff <- structure( list(raw <- data, dimension = dimension, numPatterns = numOfClasses, numPoints = numOfPoints, patterns = patterns, classifiers = list(), numClassifiers = 0, methodAggregation = "majority", range = -1, k = -1), .Names = c("raw", "dimension", "numPatterns", "numPoints", "patterns", "classifiers", "numClassifiers", "methodAggregation", "range", "k")) return (knnaff) } knnaff.docv <- function(knnaff){ counter <- 1 # Determining multi-class behaviour if (knnaff$methodAggregation == "majority"){ for (i in 1:(knnaff$numPatterns - 1)){ for (j in (i + 1):knnaff$numPatterns){ # Creating a classifier classifier.index <- counter classifier.index1 <- i classifier.index2 <- j classifier.points <- as.double(t(rbind(knnaff$patterns[[i]]$points, knnaff$patterns[[j]]$points))) classifier.cardinalities <- as.integer(c(knnaff$patterns[[i]]$cardinality, knnaff$patterns[[j]]$cardinality)) if (knnaff$k < 1 || knnaff$k > (knnaff$patterns[[i]]$cardinality + knnaff$patterns[[j]]$cardinality - 1)) { if (knnaff$range < 2 || knnaff$range > (knnaff$patterns[[i]]$cardinality + knnaff$patterns[[j]]$cardinality - 1)){ maxk <- 10*( (knnaff$numPoints)^(1/knnaff$dimension) ) + 1 }else{ maxk <- knnaff$range } maxk <- min(maxk, knnaff$patterns[[i]]$cardinality + knnaff$patterns[[j]]$cardinality - 1) maxk <- max(maxk, 2) classifier.range <- maxk classifier.k <- as.integer(.C("KnnAffInvLearnJK", classifier.points, as.integer(knnaff$dimension), classifier.cardinalities, as.integer(maxk), k=integer(1))$k) }else{ classifier.range <- knnaff$range classifier.k <- as.integer(knnaff$k) } # Adding the classifier to the list of classifiers knnaff$classifiers[[counter]] <- list(index = classifier.index, index1 = classifier.index1, index2 = classifier.index2, points = classifier.points, cardinalities = classifier.cardinalities, k = classifier.k, range = classifier.range) counter <- counter + 1 } } } if (knnaff$methodAggregation == "sequent"){ for (i in 1:knnaff$numPatterns){ anotherClass <- NULL for (j in 1:knnaff$numPatterns){ if (j != i){ anotherClass <- rbind(anotherClass, knnaff$patterns[[j]]$points) } } classifier.index <- counter classifier.index1 <- i classifier.index2 <- -1 classifier.points <- as.double(t(rbind(knnaff$patterns[[i]]$points, anotherClass))) classifier.cardinalities <- as.integer(c(knnaff$patterns[[i]]$cardinality, nrow(anotherClass))) if (knnaff$k < 1 || knnaff$k > knnaff$numPoints) { if (knnaff$range < 2 || knnaff$range > (knnaff$numPoints - 1)){ maxk <- 10*( (knnaff$numPoints)^(1/knnaff$dimension) ) + 1 }else{ maxk <- knnaff$range } maxk <- min(maxk, knnaff$numPoints - 1) maxk <- max(maxk, 2) classifier.range <- maxk classifier.k <- as.integer(.C("KnnAffInvLearnJK", classifier.points, as.integer(knnaff$dimension), classifier.cardinalities, as.integer(maxk), k=integer(1))$k) }else{ classifier.range <- knnaff$range classifier.k <- as.integer(knnaff$k) } # Adding the classifier to the list of classifiers knnaff$classifiers[[counter]] <- list(index = classifier.index, index1 = classifier.index1, index2 = classifier.index2, points = classifier.points, cardinalities = classifier.cardinalities, k = classifier.k, range = classifier.range) counter <- counter + 1 } } return (knnaff) } knnaff.classify <- function(objects, knnaff){ # Correct input data if (!is.matrix(objects)){ objects <- matrix(objects, nrow=1) } # Initialization of the vote array votes <- matrix(rep(0, nrow(objects)*knnaff$numPatterns), nrow=nrow(objects), ncol=knnaff$numPatterns) for (i in 1:length(knnaff$classifiers)){ res <- .C("KnnAffInvClassify", as.double(t(objects)), as.integer(nrow(objects)), knnaff$classifiers[[i]]$points, as.integer(knnaff$dimension), knnaff$classifiers[[i]]$cardinalities, knnaff$classifiers[[i]]$k, output=integer(nrow(objects)))$output for (j in 1:nrow(objects)){ if (res[j] == 0){ votes[j,knnaff$classifiers[[i]]$index1] <- votes[j,knnaff$classifiers[[i]]$index1] + 1 }else{ votes[j,knnaff$classifiers[[i]]$index2] <- votes[j,knnaff$classifiers[[i]]$index2] + 1 } } } # Collect results results <- list() for (i in 1:nrow(objects)){ results[[i]] <- knnaff$patterns[[which.max(votes[i,])]]$name } return (results) } ddalpha/R/dataf.tecator.r0000644000176200001440000233713212776660136015003 0ustar liggesusersdataf.tecator <- function() return (structure(list( name = "Tecator", args = "wavelength", vals = "absorbance", dataf = list(structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.61776, 2.61814, 2.61859, 2.61912, 2.61981, 2.62071, 2.62186, 2.62334, 2.62511, 2.62722, 2.62964, 2.63245, 2.63565, 2.63933, 2.64353, 2.64825, 2.6535, 2.65937, 2.66585, 2.67281, 2.68008, 2.68733, 2.69427, 2.70073, 2.70684, 2.71281, 2.71914, 2.72628, 2.73462, 2.74416, 2.75466, 2.76568, 2.77679, 2.7879, 2.79949, 2.81225, 2.82706, 2.84356, 2.86106, 2.87857, 2.89497, 2.90924, 2.92085, 2.93015, 2.93846, 2.94771, 2.96019, 2.97831, 3.00306, 3.03506, 3.07428, 3.11963, 3.16868, 3.21771, 3.26254, 3.29988, 3.32847, 3.34899, 3.36342, 3.37379, 3.38152, 3.38741, 3.39164, 3.39418, 3.3949, 3.39366, 3.39045, 3.38541, 3.37869, 3.37041, 3.36073, 3.34979, 3.33769, 3.32443, 3.31013, 3.29487, 3.27891, 3.26232, 3.24542, 3.22828, 3.2108, 3.19287, 3.17433, 3.15503, 3.13475, 3.11339, 3.09116, 3.0685, 3.04596, 3.02393, 3.00247, 2.98145, 2.96072, 2.94013, 2.91978, 2.89966, 2.87964, 2.8596, 2.8394, 2.8192)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.83454, 2.83871, 2.84283, 2.84705, 2.85138, 2.85587, 2.8606, 2.86566, 2.87093, 2.87661, 2.88264, 2.88898, 2.89577, 2.90308, 2.91097, 2.91953, 2.92873, 2.93863, 2.94929, 2.96072, 2.97272, 2.98493, 2.9969, 3.00833, 3.0192, 3.0299, 3.04101, 3.05345, 3.06777, 3.08416, 3.10221, 3.12106, 3.13983, 3.1581, 3.17623, 3.19519, 3.21584, 3.23747, 3.25889, 3.27835, 3.29384, 3.30362, 3.30681, 3.30393, 3.297, 3.28925, 3.28409, 3.28505, 3.29326, 3.30923, 3.33267, 3.36251, 3.39661, 3.43188, 3.46492, 3.49295, 3.51458, 3.53004, 3.54067, 3.54797, 3.55306, 3.55675, 3.55921, 3.56045, 3.56034, 3.55876, 3.55571, 3.55132, 3.54585, 3.5395, 3.53235, 3.52442, 3.51583, 3.50668, 3.497, 3.48683, 3.47626, 3.46552, 3.45501, 3.44481, 3.43477, 3.42465, 3.41419, 3.40303, 3.39082, 3.37731, 3.36265, 3.34745, 3.33245, 3.31818, 3.30473, 3.29186, 3.27921, 3.26655, 3.25369, 3.24045, 3.22659, 3.21181, 3.196, 3.17942)), .Names = c("args", "vals")), structure(list( args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.58284, 2.58458, 2.58629, 2.58808, 2.58996, 2.59192, 2.59401, 2.59627, 2.59873, 2.60131, 2.60414, 2.60714, 2.61029, 2.61361, 2.61714, 2.62089, 2.62486, 2.62909, 2.63361, 2.63835, 2.6433, 2.64838, 2.65354, 2.6587, 2.66375, 2.6688, 2.67383, 2.67892, 2.68411, 2.68937, 2.6947, 2.70012, 2.70563, 2.71141, 2.71775, 2.7249, 2.73344, 2.74327, 2.75433, 2.76642, 2.77931, 2.79272, 2.80649, 2.82064, 2.83541, 2.85121, 2.86872, 2.88905, 2.91289, 2.94088, 2.97325, 3.00946, 3.0478, 3.08554, 3.11947, 3.14696, 3.16677, 3.17938, 3.18631, 3.18924, 3.1895, 3.18801, 3.18498, 3.18039, 3.17411, 3.16611, 3.15641, 3.14512, 3.13241, 3.11843, 3.10329, 3.08714, 3.07014, 3.05237, 3.03393, 3.01504, 2.99569, 2.97612, 2.95642, 2.9366, 2.91667, 2.89655, 2.87622, 2.85563, 2.83474, 2.81361, 2.79235, 2.77113, 2.75015, 2.72956, 2.70934, 2.68951, 2.67009, 2.65112, 2.63262, 2.61461, 2.59718, 2.58034, 2.56404, 2.54816)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.82286, 2.8246, 2.8263, 2.82814, 2.83001, 2.83192, 2.83392, 2.83606, 2.83842, 2.84097, 2.84374, 2.84664, 2.84975, 2.85307, 2.85661, 2.86038, 2.86437, 2.8686, 2.87308, 2.87789, 2.88301, 2.88832, 2.89374, 2.89917, 2.90457, 2.90991, 2.91521, 2.92043, 2.92565, 2.93082, 2.93604, 2.94128, 2.94658, 2.95202, 2.95777, 2.96419, 2.97159, 2.98045, 2.9909, 3.00284, 3.01611, 3.03048, 3.04579, 3.06194, 3.07889, 3.09686, 3.11629, 3.13775, 3.16217, 3.19068, 3.22376, 3.26172, 3.30379, 3.34793, 3.39093, 3.4292, 3.45998, 3.48227, 3.49687, 3.50558, 3.51026, 3.51221, 3.51215, 3.51036, 3.50682, 3.5014, 3.49398, 3.48457, 3.47333, 3.46041, 3.44595, 3.43005, 3.41285, 3.3945, 3.37511, 3.35482, 3.33376, 3.31204, 3.28986, 3.2673, 3.24442, 3.22117, 3.19757, 3.17357, 3.14915, 3.12429, 3.09908, 3.07366, 3.04825, 3.02308, 2.9982, 2.97367, 2.94951, 2.92576, 2.90251, 2.87988, 2.85794, 2.83672, 2.81617, 2.79622)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.78813, 2.78989, 2.79167, 2.7935, 2.79538, 2.79746, 2.79984, 2.80254, 2.80553, 2.8089, 2.81272, 2.81704, 2.82184, 2.8271, 2.83294, 2.83945, 2.84664, 2.85458, 2.86331, 2.8728, 2.88291, 2.89335, 2.90374, 2.91371, 2.92305, 2.93187, 2.9406, 2.94986, 2.96035, 2.97241, 2.98606, 3.00097, 3.01652, 3.0322, 3.04793, 3.06413, 3.08153, 3.10078, 3.12185, 3.14371, 3.1651, 3.1847, 3.2014, 3.21477, 3.22544, 3.23505, 3.24586, 3.26027, 3.28063, 3.30889, 3.34543, 3.39019, 3.44198, 3.498, 3.55407, 3.60534, 3.64789, 3.68011, 3.70272, 3.71815, 3.72863, 3.73574, 3.74059, 3.74357, 3.74453, 3.74336, 3.73991, 3.73418, 3.72638, 3.71676, 3.70553, 3.69289, 3.679, 3.66396, 3.64785, 3.63085, 3.61305, 3.59463, 3.57582, 3.55695, 3.53796, 3.5188, 3.49936, 3.47938, 3.45869, 3.43711, 3.41458, 3.39129, 3.36772, 3.3445, 3.32201, 3.30025, 3.27907, 3.25831, 3.23784, 3.21765, 3.19766, 3.1777, 3.1577, 3.13753)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.00993, 3.0154, 3.02086, 3.02634, 3.0319, 3.03756, 3.04341, 3.04955, 3.05599, 3.06274, 3.06982, 3.07724, 3.08511, 3.09343, 3.10231, 3.11185, 3.12205, 3.13294, 3.14457, 3.15703, 3.17038, 3.18429, 3.1984, 3.21225, 3.22552, 3.23827, 3.25084, 3.26393, 3.27851, 3.29514, 3.31401, 3.33458, 3.35591, 3.37709, 3.39772, 3.41828, 3.43974, 3.46266, 3.48663, 3.51002, 3.53087, 3.54711, 3.55699, 3.55986, 3.55656, 3.54937, 3.54169, 3.53692, 3.53823, 3.5476, 3.56512, 3.59043, 3.62229, 3.6583, 3.69515, 3.72932, 3.75803, 3.78003, 3.7956, 3.80614, 3.81313, 3.81774, 3.82079, 3.82258, 3.82301, 3.82206, 3.81959, 3.81557, 3.81021, 3.80375, 3.79642, 3.78835, 3.77958, 3.77024, 3.7604, 3.75005, 3.73929, 3.72831, 3.71738, 3.70681, 3.69664, 3.68659, 3.67649, 3.66611, 3.65503, 3.64283, 3.62938, 3.61483, 3.5999, 3.58535, 3.57163, 3.55877, 3.54651, 3.53442, 3.52221, 3.50972, 3.49682, 3.48325, 3.4687, 3.45307)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.98893, 2.99435, 2.9998, 3.0054, 3.01117, 3.01716, 3.02347, 3.03014, 3.03708, 3.04445, 3.05213, 3.06032, 3.06905, 3.07841, 3.08846, 3.09918, 3.11059, 3.12265, 3.13566, 3.14936, 3.16331, 3.17695, 3.19001, 3.20256, 3.21496, 3.22788, 3.24197, 3.25812, 3.27652, 3.29661, 3.31746, 3.33822, 3.35857, 3.37882, 3.39971, 3.42189, 3.44511, 3.46814, 3.48887, 3.50519, 3.51543, 3.51885, 3.51619, 3.50972, 3.50259, 3.49802, 3.49875, 3.50653, 3.52275, 3.54677, 3.57737, 3.61244, 3.64869, 3.68262, 3.71139, 3.7336, 3.74947, 3.76022, 3.76731, 3.77206, 3.77511, 3.77666, 3.77696, 3.77594, 3.77346, 3.76953, 3.76426, 3.75787, 3.75055, 3.74243, 3.73368, 3.72442, 3.71475, 3.70463, 3.69406, 3.68318, 3.67229, 3.66175, 3.6516, 3.64173, 3.63191, 3.62177, 3.61102, 3.59929, 3.58642, 3.57249, 3.55803, 3.54375, 3.53017, 3.51747, 3.50544, 3.49372, 3.48197, 3.46996, 3.45756, 3.44456, 3.4307, 3.41583, 3.40018, 3.38415)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.52582, 2.52665, 2.52758, 2.52844, 2.52944, 2.53057, 2.53187, 2.53339, 2.53516, 2.5371, 2.53937, 2.54193, 2.54471, 2.54776, 2.55112, 2.55479, 2.55881, 2.56321, 2.56808, 2.57328, 2.57875, 2.58436, 2.58994, 2.59539, 2.60069, 2.60591, 2.61119, 2.61666, 2.62246, 2.62858, 2.63502, 2.64172, 2.64861, 2.65579, 2.6635, 2.67238, 2.68288, 2.69511, 2.709, 2.72432, 2.74071, 2.75776, 2.77516, 2.79274, 2.81083, 2.83024, 2.85189, 2.87681, 2.90596, 2.94022, 2.98013, 3.02557, 3.07533, 3.12683, 3.17635, 3.21975, 3.25322, 3.27754, 3.29438, 3.30581, 3.31357, 3.31875, 3.32198, 3.32346, 3.32312, 3.32085, 3.3165, 3.3101, 3.30175, 3.29157, 3.27989, 3.26688, 3.25257, 3.23709, 3.22056, 3.20312, 3.18497, 3.16623, 3.14704, 3.12753, 3.10768, 3.0875, 3.06697, 3.04598, 3.02452, 3.00249, 2.97994, 2.95703, 2.93406, 2.91133, 2.88903, 2.8672, 2.84572, 2.82458, 2.80388, 2.78372, 2.76415, 2.74515, 2.72671, 2.70876)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.27336, 3.27996, 3.28646, 3.293, 3.29956, 3.30627, 3.3131, 3.32006, 3.32727, 3.33472, 3.34243, 3.35035, 3.35847, 3.3669, 3.37569, 3.38485, 3.39442, 3.40444, 3.41491, 3.42586, 3.43719, 3.44863, 3.45991, 3.47089, 3.48148, 3.49178, 3.50214, 3.51296, 3.52454, 3.53691, 3.54991, 3.5633, 3.5768, 3.59026, 3.60391, 3.61845, 3.63442, 3.65194, 3.67066, 3.68994, 3.70901, 3.72709, 3.74353, 3.75823, 3.77184, 3.78596, 3.80248, 3.82298, 3.8487, 3.88066, 3.91941, 3.96476, 4.01541, 4.06862, 4.12026, 4.16604, 4.20183, 4.22819, 4.24688, 4.25992, 4.26905, 4.27545, 4.2798, 4.28231, 4.28294, 4.28151, 4.27792, 4.27216, 4.26428, 4.25443, 4.24303, 4.23031, 4.21632, 4.20117, 4.18489, 4.16765, 4.14958, 4.13086, 4.11177, 4.09248, 4.07291, 4.05302, 4.03267, 4.01176, 3.99019, 3.96779, 3.94456, 3.92067, 3.89656, 3.87259, 3.84916, 3.8262, 3.80355, 3.78118, 3.75899, 3.73709, 3.71543, 3.69395, 3.67259, 3.65127)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.39805, 3.40539, 3.41271, 3.42001, 3.42735, 3.43479, 3.44245, 3.45035, 3.45838, 3.46665, 3.47511, 3.48385, 3.49294, 3.50235, 3.51212, 3.5223, 3.53289, 3.54394, 3.55545, 3.56757, 3.58, 3.59235, 3.60434, 3.61589, 3.62715, 3.63838, 3.64981, 3.66176, 3.67455, 3.68842, 3.70286, 3.71741, 3.73184, 3.7464, 3.76172, 3.77839, 3.7967, 3.81651, 3.83715, 3.8577, 3.8771, 3.89458, 3.91029, 3.92492, 3.94003, 3.9574, 3.97887, 4.00603, 4.04003, 4.08151, 4.1302, 4.18452, 4.24136, 4.29569, 4.3424, 4.37906, 4.40592, 4.42495, 4.43846, 4.44838, 4.45557, 4.4605, 4.46341, 4.46421, 4.46273, 4.45887, 4.45276, 4.44461, 4.43461, 4.423, 4.40969, 4.395, 4.37887, 4.36182, 4.34385, 4.32492, 4.30535, 4.28533, 4.2651, 4.2446, 4.22354, 4.20185, 4.17942, 4.15606, 4.13174, 4.10661, 4.08106, 4.05559, 4.03052, 4.00597, 3.98173, 3.95779, 3.93407, 3.91059, 3.88728, 3.86413, 3.84107, 3.81811, 3.79531, 3.77262)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.00881, 3.01401, 3.01934, 3.02469, 3.03022, 3.03601, 3.04208, 3.04849, 3.05534, 3.0626, 3.07018, 3.07828, 3.08691, 3.09627, 3.10638, 3.11723, 3.12885, 3.14127, 3.15456, 3.16894, 3.18387, 3.19888, 3.21336, 3.22713, 3.24044, 3.2539, 3.26826, 3.28433, 3.3027, 3.32378, 3.34651, 3.36966, 3.39228, 3.41441, 3.43678, 3.46017, 3.48473, 3.50961, 3.53306, 3.55286, 3.56614, 3.57109, 3.56832, 3.55997, 3.54949, 3.54064, 3.53661, 3.53963, 3.55094, 3.57077, 3.59835, 3.63193, 3.66867, 3.7046, 3.73568, 3.76005, 3.77764, 3.78962, 3.79751, 3.80265, 3.80594, 3.80782, 3.80838, 3.80757, 3.80529, 3.8015, 3.79631, 3.78995, 3.78265, 3.77458, 3.76591, 3.75677, 3.7471, 3.73704, 3.72657, 3.71589, 3.70526, 3.69496, 3.6851, 3.67558, 3.6661, 3.65638, 3.64604, 3.63463, 3.62193, 3.6081, 3.59366, 3.57945, 3.56603, 3.55354, 3.54178, 3.53029, 3.51872, 3.50678, 3.49431, 3.48107, 3.46677, 3.45126, 3.43478, 3.41792)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.15499, 2.1545, 2.15393, 2.15342, 2.153, 2.15263, 2.1523, 2.15209, 2.15214, 2.15232, 2.15265, 2.15305, 2.15356, 2.15424, 2.15514, 2.15623, 2.15748, 2.1589, 2.16058, 2.16251, 2.16471, 2.16703, 2.16941, 2.17181, 2.17418, 2.17661, 2.179, 2.18122, 2.18325, 2.18511, 2.1869, 2.18885, 2.19117, 2.19409, 2.19797, 2.20315, 2.21031, 2.2195, 2.23088, 2.24446, 2.26009, 2.27765, 2.2971, 2.31839, 2.34155, 2.36663, 2.39397, 2.4245, 2.4589, 2.49783, 2.5416, 2.5894, 2.63917, 2.68768, 2.73133, 2.76738, 2.79485, 2.81454, 2.82838, 2.83813, 2.84525, 2.85047, 2.85403, 2.85586, 2.85589, 2.85389, 2.84985, 2.84396, 2.83637, 2.82722, 2.81669, 2.80476, 2.79161, 2.77734, 2.76216, 2.74616, 2.72948, 2.71228, 2.69452, 2.67636, 2.65782, 2.63887, 2.61947, 2.59956, 2.57921, 2.55853, 2.53763, 2.51673, 2.49598, 2.47541, 2.45506, 2.43495, 2.41518, 2.39586, 2.37715, 2.35907, 2.34173, 2.32514, 2.30934, 2.29418)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.88841, 2.89612, 2.90365, 2.91112, 2.91849, 2.9258, 2.93305, 2.94026, 2.94758, 2.95479, 2.96199, 2.96915, 2.97629, 2.98345, 2.99066, 2.99786, 3.00509, 3.01239, 3.01979, 3.02726, 3.03478, 3.04228, 3.04975, 3.05717, 3.0645, 3.07174, 3.07889, 3.08585, 3.09261, 3.09925, 3.10582, 3.1123, 3.11879, 3.12548, 3.13253, 3.14018, 3.14885, 3.15851, 3.16929, 3.18116, 3.19405, 3.20791, 3.22266, 3.23827, 3.25478, 3.27232, 3.29121, 3.31209, 3.33552, 3.36191, 3.39153, 3.42403, 3.45826, 3.49226, 3.52367, 3.55044, 3.57162, 3.58746, 3.59899, 3.60745, 3.61372, 3.61844, 3.62181, 3.62383, 3.62442, 3.62355, 3.6212, 3.6174, 3.61231, 3.60604, 3.59863, 3.59021, 3.58088, 3.57073, 3.55985, 3.54833, 3.53635, 3.52394, 3.51121, 3.49822, 3.48495, 3.47135, 3.45745, 3.44325, 3.42874, 3.41397, 3.39902, 3.38402, 3.36908, 3.35426, 3.3396, 3.3251, 3.31075, 3.29666, 3.28288, 3.26947, 3.25639, 3.24368, 3.23138, 3.21932)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.9886, 2.99705, 3.00537, 3.01352, 3.02157, 3.02955, 3.03748, 3.04537, 3.05328, 3.06115, 3.06899, 3.07685, 3.08469, 3.09251, 3.10034, 3.10823, 3.11618, 3.12415, 3.13224, 3.14041, 3.14863, 3.15685, 3.16505, 3.1732, 3.18126, 3.18918, 3.19704, 3.20476, 3.21232, 3.21976, 3.22709, 3.23435, 3.24164, 3.24907, 3.25699, 3.26552, 3.27506, 3.28564, 3.29734, 3.31014, 3.324, 3.33882, 3.35453, 3.37108, 3.38847, 3.40692, 3.42678, 3.44871, 3.47318, 3.50074, 3.53165, 3.56558, 3.60135, 3.63697, 3.67002, 3.69845, 3.72121, 3.73845, 3.75124, 3.76063, 3.76763, 3.77297, 3.77689, 3.77941, 3.78035, 3.77972, 3.77757, 3.77394, 3.76891, 3.76259, 3.7551, 3.74657, 3.73706, 3.72672, 3.71559, 3.70386, 3.69156, 3.67891, 3.66593, 3.65263, 3.63907, 3.62524, 3.61109, 3.59664, 3.5819, 3.56688, 3.55166, 3.53639, 3.52124, 3.50625, 3.4914, 3.47672, 3.46227, 3.44807, 3.43416, 3.42061, 3.40749, 3.39474, 3.38234, 3.37017)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.13203, 3.14117, 3.15015, 3.15899, 3.16774, 3.17642, 3.18504, 3.1936, 3.20214, 3.21066, 3.21913, 3.22759, 3.23606, 3.24454, 3.25304, 3.26157, 3.27014, 3.27879, 3.2875, 3.29634, 3.3052, 3.31408, 3.32297, 3.33181, 3.34055, 3.34926, 3.35777, 3.36619, 3.37447, 3.38264, 3.39072, 3.39872, 3.40672, 3.41491, 3.4235, 3.43277, 3.44309, 3.45456, 3.46717, 3.48094, 3.49584, 3.51181, 3.52873, 3.54649, 3.56513, 3.58482, 3.60596, 3.62921, 3.65508, 3.68411, 3.71668, 3.75254, 3.79061, 3.82891, 3.86499, 3.89659, 3.92226, 3.94198, 3.95668, 3.96754, 3.97573, 3.98199, 3.98652, 3.98942, 3.99071, 3.99027, 3.98813, 3.98433, 3.97893, 3.97211, 3.96402, 3.95479, 3.9445, 3.93332, 3.92123, 3.90845, 3.89505, 3.88129, 3.86723, 3.85287, 3.83821, 3.82326, 3.80804, 3.79254, 3.77668, 3.76055, 3.74429, 3.72799, 3.71176, 3.6957, 3.67987, 3.6643, 3.64899, 3.63392, 3.61912, 3.60474, 3.59085, 3.57745, 3.56438, 3.55159)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.50688, 2.50783, 2.5088, 2.50985, 2.51101, 2.51229, 2.51369, 2.51523, 2.51692, 2.51888, 2.52103, 2.52331, 2.52576, 2.52841, 2.53122, 2.53423, 2.53752, 2.54095, 2.54465, 2.54859, 2.55274, 2.55703, 2.5614, 2.56579, 2.57016, 2.57449, 2.5788, 2.5831, 2.58734, 2.59156, 2.59575, 2.59996, 2.60428, 2.60886, 2.61396, 2.61985, 2.62702, 2.63551, 2.64524, 2.65624, 2.66831, 2.68128, 2.69503, 2.7095, 2.72479, 2.74116, 2.75911, 2.77959, 2.80313, 2.83051, 2.862, 2.89712, 2.93444, 2.97142, 3.00482, 3.03191, 3.05143, 3.06386, 3.07077, 3.07371, 3.07402, 3.07252, 3.06948, 3.06492, 3.05869, 3.05075, 3.04106, 3.0297, 3.01681, 3.00253, 2.98699, 2.9703, 2.95266, 2.93406, 2.91468, 2.8946, 2.87393, 2.85285, 2.83147, 2.80986, 2.78794, 2.76571, 2.74317, 2.72026, 2.69701, 2.67351, 2.64986, 2.62621, 2.60273, 2.57953, 2.55669, 2.53422, 2.51217, 2.49056, 2.46947, 2.44895, 2.42914, 2.41002, 2.39156, 2.37374)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.62979, 2.632, 2.63413, 2.63626, 2.63846, 2.64072, 2.64303, 2.64548, 2.648, 2.65065, 2.65346, 2.6564, 2.65947, 2.66264, 2.66592, 2.6694, 2.67302, 2.67689, 2.68095, 2.68514, 2.68946, 2.69387, 2.69828, 2.70267, 2.70697, 2.71114, 2.71522, 2.71923, 2.72323, 2.72725, 2.73128, 2.73533, 2.73948, 2.74393, 2.74898, 2.755, 2.76246, 2.77138, 2.78171, 2.79331, 2.806, 2.81959, 2.83391, 2.84895, 2.86486, 2.88209, 2.90118, 2.92336, 2.94913, 2.97917, 3.01363, 3.0519, 3.09222, 3.13179, 3.16746, 3.19675, 3.21871, 3.23405, 3.24441, 3.25133, 3.25598, 3.25903, 3.26062, 3.26066, 3.25909, 3.25586, 3.25095, 3.24435, 3.23616, 3.22654, 3.2156, 3.20347, 3.19022, 3.17585, 3.16056, 3.14436, 3.12748, 3.11004, 3.09214, 3.07381, 3.05504, 3.03578, 3.01601, 2.99572, 2.97493, 2.95364, 2.93202, 2.91024, 2.8885, 2.86696, 2.84566, 2.82459, 2.80375, 2.78326, 2.7632, 2.74361, 2.72461, 2.70611, 2.6881, 2.67051)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.91792, 2.91896, 2.92004, 2.92119, 2.92238, 2.92373, 2.92528, 2.92693, 2.9288, 2.93089, 2.93321, 2.93566, 2.9383, 2.94111, 2.94409, 2.9473, 2.95075, 2.9544, 2.95826, 2.96232, 2.96659, 2.97107, 2.97566, 2.98024, 2.98478, 2.98931, 2.99389, 2.99849, 3.00307, 3.00766, 3.01223, 3.01679, 3.02143, 3.0263, 3.0316, 3.03762, 3.04465, 3.05273, 3.06198, 3.07224, 3.0833, 3.09495, 3.10709, 3.11965, 3.13274, 3.14673, 3.16206, 3.17967, 3.20029, 3.22445, 3.25241, 3.28373, 3.3169, 3.34946, 3.37856, 3.40178, 3.41794, 3.42745, 3.4317, 3.43221, 3.43037, 3.42683, 3.42186, 3.41537, 3.40732, 3.39762, 3.38629, 3.37347, 3.35928, 3.34381, 3.32721, 3.30963, 3.2912, 3.27207, 3.25225, 3.23192, 3.21109, 3.19003, 3.16879, 3.14742, 3.1259, 3.10413, 3.08215, 3.05997, 3.03761, 3.01507, 2.99247, 2.96992, 2.9476, 2.92566, 2.90415, 2.88309, 2.86247, 2.84225, 2.82254, 2.80343, 2.78495, 2.76714, 2.74992, 2.73321)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.85587, 2.85753, 2.85919, 2.86082, 2.86244, 2.86411, 2.86592, 2.86788, 2.87002, 2.87241, 2.87496, 2.87767, 2.88059, 2.88374, 2.88713, 2.8908, 2.89478, 2.89911, 2.90382, 2.90888, 2.91422, 2.9197, 2.92521, 2.9307, 2.93615, 2.94158, 2.94703, 2.95264, 2.95845, 2.96444, 2.97058, 2.97686, 2.98338, 2.99041, 2.99831, 3.00762, 3.0191, 3.03269, 3.04836, 3.06597, 3.08528, 3.10601, 3.12791, 3.15096, 3.1754, 3.20168, 3.23053, 3.26338, 3.30089, 3.34391, 3.39289, 3.44733, 3.50542, 3.56397, 3.61887, 3.66629, 3.70409, 3.73225, 3.75245, 3.76667, 3.77679, 3.78391, 3.78854, 3.79072, 3.79046, 3.78762, 3.78222, 3.7744, 3.76431, 3.75217, 3.7382, 3.7225, 3.70539, 3.68694, 3.66737, 3.64687, 3.62557, 3.60372, 3.58146, 3.55895, 3.53612, 3.51292, 3.48934, 3.46531, 3.44081, 3.41593, 3.39083, 3.36576, 3.34095, 3.31661, 3.2928, 3.26945, 3.24661, 3.22437, 3.20278, 3.18198, 3.16196, 3.1427, 3.12415, 3.10627)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.77761, 2.77938, 2.78124, 2.78315, 2.78513, 2.7872, 2.78945, 2.79194, 2.79459, 2.7975, 2.80069, 2.80412, 2.8077, 2.81151, 2.81557, 2.81989, 2.82446, 2.82933, 2.83456, 2.84014, 2.84596, 2.85201, 2.85819, 2.86441, 2.87062, 2.87676, 2.88298, 2.88924, 2.89559, 2.90204, 2.90862, 2.91526, 2.92193, 2.92871, 2.93588, 2.94379, 2.95281, 2.96325, 2.97503, 2.98798, 3.00194, 3.0166, 3.03174, 3.0473, 3.06344, 3.08047, 3.09898, 3.11968, 3.14383, 3.17216, 3.20524, 3.24294, 3.28394, 3.32563, 3.36451, 3.39739, 3.4224, 3.43945, 3.44992, 3.4556, 3.45803, 3.4581, 3.45644, 3.45307, 3.4479, 3.44086, 3.43188, 3.42102, 3.40846, 3.39435, 3.37883, 3.36205, 3.34414, 3.32521, 3.30534, 3.28463, 3.2633, 3.24146, 3.21931, 3.19686, 3.17414, 3.15114, 3.1278, 3.10409, 3.07997, 3.05545, 3.03061, 3.00567, 2.9809, 2.95646, 2.93241, 2.90877, 2.88551, 2.86264, 2.84028, 2.81853, 2.7975, 2.77718, 2.75747, 2.73836)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.81969, 2.82316, 2.82656, 2.82991, 2.83325, 2.8366, 2.84002, 2.8435, 2.84706, 2.85073, 2.85451, 2.85835, 2.86223, 2.86619, 2.87029, 2.87454, 2.87888, 2.88331, 2.88792, 2.89272, 2.89762, 2.9025, 2.90726, 2.91189, 2.91637, 2.92069, 2.92487, 2.92897, 2.93313, 2.93739, 2.9417, 2.94597, 2.95022, 2.95477, 2.96003, 2.96644, 2.97426, 2.98356, 2.99437, 3.00645, 3.01949, 3.03315, 3.04723, 3.06176, 3.07708, 3.09376, 3.11261, 3.13456, 3.16047, 3.19121, 3.22725, 3.26787, 3.31087, 3.35256, 3.38907, 3.41794, 3.43881, 3.45316, 3.46293, 3.46971, 3.4745, 3.47776, 3.47964, 3.47999, 3.47861, 3.47544, 3.47049, 3.46385, 3.45566, 3.44606, 3.43518, 3.42308, 3.40986, 3.3956, 3.38041, 3.36439, 3.34772, 3.33058, 3.31304, 3.29507, 3.27668, 3.25785, 3.23855, 3.2187, 3.19825, 3.17719, 3.15576, 3.13422, 3.11282, 3.09165, 3.07068, 3.04989, 3.02929, 3.00893, 2.98897, 2.9695, 2.95048, 2.93186, 2.91354, 2.89551)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.79397, 2.79267, 2.79146, 2.79043, 2.78959, 2.78891, 2.78839, 2.78811, 2.78817, 2.78847, 2.78904, 2.78986, 2.79093, 2.7923, 2.79396, 2.79587, 2.79804, 2.80053, 2.80337, 2.80649, 2.80989, 2.81347, 2.81713, 2.82079, 2.82442, 2.82803, 2.83167, 2.83533, 2.83918, 2.84319, 2.84733, 2.85155, 2.85583, 2.86033, 2.86531, 2.87119, 2.87833, 2.8868, 2.89644, 2.90705, 2.91831, 2.92989, 2.94156, 2.95328, 2.96527, 2.97807, 2.9925, 3.00985, 3.03083, 3.05611, 3.0859, 3.11964, 3.15567, 3.1912, 3.22292, 3.24812, 3.26558, 3.27591, 3.28058, 3.28135, 3.2795, 3.2758, 3.27057, 3.26378, 3.25535, 3.24522, 3.23334, 3.21981, 3.2048, 3.18844, 3.17091, 3.15238, 3.13295, 3.11263, 3.09154, 3.06986, 3.04776, 3.02535, 3.00275, 2.98003, 2.95713, 2.93402, 2.91064, 2.88702, 2.8631, 2.83889, 2.81448, 2.79011, 2.76601, 2.74234, 2.71919, 2.69653, 2.67432, 2.6526, 2.63145, 2.61092, 2.59104, 2.57178, 2.55302, 2.53483)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.19633, 2.19528, 2.19424, 2.19317, 2.19215, 2.19127, 2.19059, 2.19007, 2.1898, 2.1897, 2.18974, 2.19008, 2.19069, 2.19156, 2.1927, 2.19413, 2.1959, 2.198, 2.20054, 2.2034, 2.20644, 2.20952, 2.21258, 2.21557, 2.21853, 2.22156, 2.22475, 2.22821, 2.23201, 2.2362, 2.24076, 2.24564, 2.25084, 2.25656, 2.26316, 2.27102, 2.28086, 2.29255, 2.30605, 2.32108, 2.33726, 2.35433, 2.37214, 2.39071, 2.41036, 2.43166, 2.45535, 2.48281, 2.5146, 2.5515, 2.59372, 2.64064, 2.69032, 2.73959, 2.78477, 2.82275, 2.85204, 2.87304, 2.8875, 2.89723, 2.90381, 2.90813, 2.91061, 2.91119, 2.90981, 2.90636, 2.90085, 2.8934, 2.88418, 2.8734, 2.86128, 2.84791, 2.83342, 2.81794, 2.80157, 2.78452, 2.76687, 2.74885, 2.73058, 2.71211, 2.69342, 2.67446, 2.65516, 2.63549, 2.61544, 2.59505, 2.57451, 2.55399, 2.53367, 2.51377, 2.49432, 2.47531, 2.45676, 2.43873, 2.42121, 2.40428, 2.38792, 2.37223, 2.3571, 2.34251)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.32573, 3.33389, 3.3419, 3.34985, 3.35772, 3.36558, 3.37354, 3.3816, 3.38977, 3.39803, 3.40629, 3.41468, 3.42324, 3.43193, 3.44075, 3.44976, 3.45896, 3.4684, 3.47809, 3.48809, 3.4983, 3.50863, 3.51892, 3.52904, 3.53901, 3.54892, 3.55875, 3.56866, 3.57865, 3.58881, 3.59908, 3.60939, 3.61978, 3.63044, 3.64175, 3.65407, 3.66804, 3.68364, 3.70074, 3.71898, 3.73796, 3.75737, 3.77704, 3.79696, 3.81752, 3.83931, 3.86328, 3.89102, 3.92322, 3.96061, 4.00347, 4.05122, 4.10187, 4.15209, 4.19801, 4.23641, 4.26568, 4.28637, 4.30043, 4.30979, 4.3162, 4.32042, 4.32276, 4.32326, 4.32191, 4.3184, 4.31276, 4.30518, 4.29589, 4.28515, 4.27302, 4.25954, 4.24506, 4.22968, 4.21343, 4.19645, 4.17876, 4.16097, 4.14301, 4.12489, 4.10643, 4.08769, 4.06863, 4.04917, 4.02927, 4.00894, 3.98831, 3.9676, 3.94711, 3.927, 3.90727, 3.88788, 3.86877, 3.84997, 3.83162, 3.81367, 3.79624, 3.77928, 3.7626, 3.74616)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.8406, 2.84137, 2.84205, 2.84273, 2.84348, 2.84427, 2.84515, 2.84627, 2.84753, 2.8491, 2.85088, 2.85288, 2.85512, 2.85765, 2.86051, 2.86374, 2.86729, 2.87131, 2.87579, 2.8806, 2.88569, 2.8909, 2.89605, 2.90106, 2.90594, 2.91077, 2.91586, 2.92137, 2.92742, 2.93408, 2.94127, 2.9488, 2.95662, 2.9649, 2.97398, 2.98445, 2.99694, 3.01147, 3.02779, 3.04555, 3.06418, 3.08314, 3.10216, 3.12133, 3.14114, 3.16245, 3.18648, 3.21489, 3.24854, 3.28826, 3.33443, 3.38652, 3.44265, 3.4995, 3.55289, 3.59899, 3.63555, 3.66255, 3.68176, 3.6951, 3.70443, 3.71093, 3.7151, 3.71699, 3.71649, 3.71351, 3.70803, 3.70019, 3.69023, 3.67835, 3.66474, 3.6495, 3.6329, 3.6151, 3.59621, 3.57638, 3.55576, 3.53461, 3.51313, 3.4914, 3.46944, 3.44714, 3.4244, 3.40116, 3.37743, 3.35323, 3.32868, 3.30408, 3.27973, 3.25586, 3.2326, 3.20993, 3.1878, 3.16618, 3.14505, 3.12454, 3.10466, 3.08536, 3.06658, 3.04829)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.40439, 2.40103, 2.3978, 2.39473, 2.39185, 2.38919, 2.38685, 2.38486, 2.38324, 2.38199, 2.3811, 2.3806, 2.38055, 2.38104, 2.3821, 2.38371, 2.38583, 2.38847, 2.39175, 2.39558, 2.39978, 2.40402, 2.40804, 2.41179, 2.41534, 2.41883, 2.42255, 2.42687, 2.43215, 2.43851, 2.44567, 2.45309, 2.46056, 2.46837, 2.47736, 2.48826, 2.50143, 2.51684, 2.53412, 2.55253, 2.57115, 2.58906, 2.60587, 2.62187, 2.63818, 2.65641, 2.67825, 2.70522, 2.73843, 2.7788, 2.8267, 2.88101, 2.93884, 2.99554, 3.04616, 3.08755, 3.11899, 3.14215, 3.1594, 3.17266, 3.18321, 3.19173, 3.19833, 3.20289, 3.20521, 3.20525, 3.20298, 3.19853, 3.19204, 3.1837, 3.17368, 3.16205, 3.14897, 3.1345, 3.11875, 3.10189, 3.08411, 3.06564, 3.04666, 3.0272, 3.00723, 2.98673, 2.96565, 2.94381, 2.92099, 2.89719, 2.87274, 2.84812, 2.82384, 2.80012, 2.77692, 2.75416, 2.73179, 2.70992, 2.68864, 2.66795, 2.64772, 2.62778, 2.60808, 2.5888)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.53798, 2.53468, 2.53148, 2.5284, 2.52551, 2.52291, 2.52062, 2.51868, 2.5171, 2.51592, 2.51514, 2.51476, 2.51484, 2.51544, 2.51664, 2.51844, 2.52079, 2.52371, 2.52726, 2.53142, 2.53596, 2.5405, 2.5448, 2.54874, 2.55246, 2.5562, 2.56023, 2.5649, 2.57056, 2.57731, 2.58492, 2.59283, 2.60078, 2.60906, 2.61847, 2.62985, 2.64359, 2.65964, 2.67761, 2.69671, 2.71602, 2.7346, 2.752, 2.76857, 2.7855, 2.80448, 2.8273, 2.85555, 2.89039, 2.93277, 2.98309, 3.04014, 3.10087, 3.16033, 3.21326, 3.25626, 3.28872, 3.31245, 3.33002, 3.3435, 3.35419, 3.36278, 3.36941, 3.37399, 3.37626, 3.37611, 3.37358, 3.36883, 3.362, 3.35327, 3.34279, 3.33068, 3.31711, 3.30212, 3.28584, 3.26839, 3.24999, 3.23093, 3.21136, 3.19136, 3.17086, 3.14979, 3.12808, 3.10555, 3.08199, 3.0574, 3.03212, 3.00669, 2.98154, 2.95696, 2.93294, 2.90936, 2.88616, 2.86341, 2.84126, 2.81971, 2.79865, 2.77788, 2.75736, 2.73725)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.23584, 2.23529, 2.23474, 2.23419, 2.2337, 2.23332, 2.2331, 2.23305, 2.23318, 2.23349, 2.23402, 2.23477, 2.23573, 2.23699, 2.23857, 2.24048, 2.2427, 2.24528, 2.24825, 2.25162, 2.25525, 2.25897, 2.26257, 2.26602, 2.26934, 2.27269, 2.27619, 2.2801, 2.28461, 2.28977, 2.29539, 2.30116, 2.30691, 2.31287, 2.31961, 2.32764, 2.33721, 2.3483, 2.36062, 2.37369, 2.38698, 2.3999, 2.41223, 2.42419, 2.43651, 2.45026, 2.46651, 2.48632, 2.51049, 2.5398, 2.57465, 2.61433, 2.65686, 2.69902, 2.73721, 2.7689, 2.7932, 2.81093, 2.82371, 2.83298, 2.83977, 2.84469, 2.84794, 2.84948, 2.84918, 2.84698, 2.84289, 2.83704, 2.82957, 2.82067, 2.8105, 2.79919, 2.78683, 2.77355, 2.75943, 2.74459, 2.72923, 2.71357, 2.69774, 2.68174, 2.66552, 2.64907, 2.63232, 2.61517, 2.59749, 2.5793, 2.56078, 2.54232, 2.52419, 2.50659, 2.48945, 2.47271, 2.45632, 2.44033, 2.42478, 2.4097, 2.39503, 2.38063, 2.36647, 2.35262)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.23584, 2.23529, 2.23474, 2.23419, 2.2337, 2.23332, 2.2331, 2.23305, 2.23318, 2.23349, 2.23402, 2.23477, 2.23573, 2.23699, 2.23857, 2.24048, 2.2427, 2.24528, 2.24825, 2.25162, 2.25525, 2.25897, 2.26257, 2.26602, 2.26934, 2.27269, 2.27619, 2.2801, 2.28461, 2.28977, 2.29539, 2.30116, 2.30691, 2.31287, 2.31961, 2.32764, 2.33721, 2.3483, 2.36062, 2.37369, 2.38698, 2.3999, 2.41223, 2.42419, 2.43651, 2.45026, 2.46651, 2.48632, 2.51049, 2.5398, 2.57465, 2.61433, 2.65686, 2.69902, 2.73721, 2.7689, 2.7932, 2.81093, 2.82371, 2.83298, 2.83977, 2.84469, 2.84794, 2.84948, 2.84918, 2.84698, 2.84289, 2.83704, 2.82957, 2.82067, 2.8105, 2.79919, 2.78683, 2.77355, 2.75943, 2.74459, 2.72923, 2.71357, 2.69774, 2.68174, 2.66552, 2.64907, 2.63232, 2.61517, 2.59749, 2.5793, 2.56078, 2.54232, 2.52419, 2.50659, 2.48945, 2.47271, 2.45632, 2.44033, 2.42478, 2.4097, 2.39503, 2.38063, 2.36647, 2.35262)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.78993, 2.79053, 2.79122, 2.79207, 2.79308, 2.79427, 2.79571, 2.79745, 2.79947, 2.80187, 2.80462, 2.8077, 2.81108, 2.81481, 2.81898, 2.82357, 2.8286, 2.83407, 2.84, 2.84631, 2.85291, 2.85961, 2.86617, 2.8725, 2.87857, 2.88449, 2.8906, 2.89713, 2.90419, 2.91183, 2.91997, 2.92845, 2.93712, 2.94603, 2.9555, 2.96615, 2.97864, 2.99285, 3.00847, 3.02501, 3.04173, 3.05797, 3.0734, 3.08814, 3.10291, 3.11883, 3.13722, 3.16006, 3.18831, 3.22285, 3.26398, 3.31102, 3.36188, 3.41304, 3.45995, 3.49857, 3.52695, 3.54556, 3.55658, 3.56234, 3.56468, 3.56477, 3.56278, 3.55884, 3.55287, 3.54469, 3.53421, 3.52165, 3.50732, 3.4914, 3.47395, 3.45517, 3.43527, 3.41426, 3.39238, 3.36978, 3.34659, 3.32305, 3.2993, 3.27545, 3.25141, 3.22711, 3.20246, 3.17736, 3.15174, 3.12556, 3.099, 3.07236, 3.04602, 3.02022, 2.9951, 2.97062, 2.94668, 2.92319, 2.90023, 2.87783, 2.85601, 2.83468, 2.81378, 2.79328)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.58707, 2.58646, 2.58589, 2.58536, 2.58491, 2.58465, 2.58467, 2.58497, 2.5856, 2.58668, 2.58812, 2.58993, 2.59224, 2.5951, 2.59852, 2.60252, 2.60704, 2.61221, 2.61796, 2.62423, 2.63075, 2.63728, 2.64359, 2.64956, 2.65527, 2.66102, 2.66733, 2.67463, 2.68328, 2.69332, 2.70459, 2.71671, 2.7294, 2.74264, 2.75679, 2.77258, 2.7908, 2.81129, 2.83343, 2.8564, 2.87926, 2.90117, 2.92173, 2.94115, 2.96043, 2.98107, 3.005, 3.03463, 3.07095, 3.11493, 3.16676, 3.22561, 3.28909, 3.35308, 3.41255, 3.46303, 3.50215, 3.53014, 3.54926, 3.56216, 3.57085, 3.57669, 3.58015, 3.58117, 3.57969, 3.57565, 3.56903, 3.55993, 3.54863, 3.53541, 3.52047, 3.50405, 3.48625, 3.46726, 3.44725, 3.42631, 3.40461, 3.38239, 3.35985, 3.33712, 3.31418, 3.29087, 3.26722, 3.24303, 3.21815, 3.19266, 3.16675, 3.14074, 3.11508, 3.09011, 3.06592, 3.04249, 3.01967, 2.99747, 2.97577, 2.95454, 2.93377, 2.91341, 2.89335, 2.87367)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.63036, 2.63168, 2.63299, 2.63434, 2.63579, 2.63742, 2.63928, 2.6414, 2.64381, 2.64651, 2.64949, 2.65274, 2.65637, 2.66044, 2.66501, 2.67007, 2.67562, 2.68169, 2.6884, 2.69563, 2.70313, 2.71049, 2.71741, 2.72379, 2.72986, 2.73589, 2.74229, 2.74944, 2.75774, 2.76724, 2.77763, 2.78821, 2.79856, 2.80889, 2.82, 2.83272, 2.84748, 2.86412, 2.88207, 2.90034, 2.91775, 2.93326, 2.94643, 2.95776, 2.96871, 2.98128, 2.9975, 3.0191, 3.04723, 3.08277, 3.12607, 3.17597, 3.22966, 3.28237, 3.32901, 3.36627, 3.39339, 3.41215, 3.42499, 3.43403, 3.44056, 3.44526, 3.44834, 3.44963, 3.44885, 3.44585, 3.44077, 3.43386, 3.42522, 3.41508, 3.40356, 3.39085, 3.37706, 3.36222, 3.34644, 3.32982, 3.3126, 3.29508, 3.27741, 3.25962, 3.24159, 3.22324, 3.20445, 3.18502, 3.16459, 3.14312, 3.12092, 3.09855, 3.07659, 3.05532, 3.03469, 3.01443, 2.9944, 2.9746, 2.95515, 2.93608, 2.91725, 2.89843, 2.87951, 2.86072)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.64692, 3.65042, 3.6539, 3.65758, 3.66153, 3.66578, 3.67033, 3.67517, 3.68034, 3.68619, 3.69235, 3.69895, 3.70601, 3.71356, 3.72165, 3.73032, 3.73956, 3.74949, 3.7601, 3.77138, 3.78321, 3.79533, 3.80742, 3.81924, 3.83075, 3.84213, 3.85375, 3.8661, 3.87933, 3.89359, 3.90865, 3.9241, 3.93965, 3.95525, 3.97123, 3.98844, 4.00762, 4.02863, 4.05082, 4.07309, 4.09432, 4.11354, 4.13023, 4.14458, 4.15764, 4.17137, 4.18797, 4.21012, 4.2391, 4.2757, 4.32026, 4.37196, 4.42824, 4.48476, 4.5364, 4.57889, 4.61021, 4.63085, 4.64278, 4.64843, 4.6503, 4.64959, 4.64662, 4.64112, 4.63337, 4.62295, 4.60994, 4.59481, 4.57781, 4.55904, 4.53846, 4.51611, 4.49293, 4.46861, 4.44343, 4.41718, 4.39033, 4.36349, 4.33659, 4.30968, 4.28268, 4.25545, 4.22778, 4.19941, 4.17028, 4.14045, 4.11009, 4.07956, 4.04938, 4.01995, 3.99136, 3.96352, 3.93634, 3.90966, 3.88345, 3.85755, 3.83201, 3.80681, 3.78174, 3.75681)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.99401, 2.99294, 2.99199, 2.99126, 2.99086, 2.99096, 2.99165, 2.99304, 2.99515, 2.99805, 3.00176, 3.00631, 3.01193, 3.01878, 3.027, 3.03652, 3.04723, 3.05915, 3.07239, 3.08678, 3.10167, 3.11607, 3.12925, 3.14111, 3.15221, 3.16341, 3.17577, 3.19041, 3.20843, 3.23004, 3.25447, 3.28, 3.30527, 3.33036, 3.35669, 3.38599, 3.41909, 3.4555, 3.4938, 3.53179, 3.56687, 3.59661, 3.62011, 3.63848, 3.65504, 3.67418, 3.69996, 3.73578, 3.78355, 3.84462, 3.9195, 4.00617, 4.1002, 4.19386, 4.27825, 4.34717, 4.39833, 4.43464, 4.4605, 4.47941, 4.49339, 4.50402, 4.51175, 4.51647, 4.51758, 4.51482, 4.50846, 4.49895, 4.48644, 4.47116, 4.45336, 4.43359, 4.41196, 4.38861, 4.36343, 4.3366, 4.30863, 4.27987, 4.25083, 4.22158, 4.1919, 4.1616, 4.13054, 4.09836, 4.06445, 4.02869, 3.99158, 3.95423, 3.91767, 3.88259, 3.84878, 3.81592, 3.78372, 3.75221, 3.72135, 3.69094, 3.66061, 3.62989, 3.59881, 3.5679)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.42686, 3.43133, 3.43585, 3.44046, 3.4453, 3.45056, 3.45637, 3.46281, 3.46987, 3.47758, 3.48604, 3.49529, 3.5055, 3.51687, 3.52958, 3.54355, 3.55867, 3.57493, 3.59255, 3.61142, 3.63093, 3.65004, 3.66789, 3.68421, 3.69953, 3.71469, 3.73088, 3.74937, 3.77138, 3.79725, 3.82615, 3.85596, 3.88507, 3.91338, 3.9426, 3.9747, 4.01044, 4.0492, 4.08937, 4.1284, 4.1633, 4.19105, 4.21055, 4.22307, 4.2326, 4.24429, 4.26313, 4.2928, 4.33519, 4.39144, 4.46179, 4.54397, 4.6334, 4.72254, 4.80315, 4.86928, 4.91971, 4.95659, 4.98427, 5.00585, 5.02337, 5.03841, 5.04989, 5.0582, 5.06311, 5.06446, 5.06227, 5.05754, 5.05046, 5.04066, 5.02798, 5.0126, 4.99518, 4.97637, 4.95539, 4.93266, 4.90842, 4.88342, 4.85861, 4.83316, 4.80645, 4.77886, 4.75032, 4.72062, 4.68847, 4.65396, 4.61771, 4.58114, 4.54499, 4.51051, 4.47691, 4.44411, 4.4118, 4.37996, 4.34862, 4.31738, 4.28591, 4.25358, 4.22046, 4.18721)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.67358, 2.67434, 2.67519, 2.6761, 2.67712, 2.67835, 2.67985, 2.68166, 2.68387, 2.68649, 2.68953, 2.693, 2.69698, 2.70155, 2.70682, 2.71286, 2.71963, 2.72727, 2.73573, 2.7448, 2.75424, 2.76361, 2.7725, 2.78072, 2.78843, 2.79605, 2.80442, 2.81417, 2.82571, 2.83904, 2.85383, 2.86946, 2.88526, 2.90096, 2.91697, 2.93407, 2.95314, 2.97379, 2.99519, 3.0161, 3.03507, 3.05087, 3.06296, 3.07183, 3.07902, 3.0869, 3.09809, 3.11537, 3.13987, 3.17231, 3.21287, 3.26075, 3.31378, 3.36849, 3.42059, 3.46606, 3.50251, 3.52969, 3.54909, 3.56259, 3.57202, 3.57867, 3.58296, 3.58507, 3.58488, 3.58227, 3.57725, 3.56999, 3.56077, 3.54985, 3.53734, 3.52347, 3.50834, 3.49221, 3.47504, 3.45706, 3.43851, 3.41953, 3.4005, 3.38145, 3.36239, 3.34316, 3.32355, 3.30336, 3.28234, 3.26037, 3.23765, 3.21466, 3.19199, 3.17005, 3.14903, 3.12878, 3.10904, 3.08964, 3.07051, 3.0516, 3.03275, 3.0138, 2.99462, 2.97534)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.73924, 2.74018, 2.74127, 2.74251, 2.74391, 2.74558, 2.74762, 2.75007, 2.75289, 2.75622, 2.75992, 2.76415, 2.76893, 2.77435, 2.78048, 2.78727, 2.79478, 2.80309, 2.81221, 2.82203, 2.83223, 2.84241, 2.85211, 2.86111, 2.86953, 2.8778, 2.88657, 2.89653, 2.9081, 2.92144, 2.93623, 2.9518, 2.96749, 2.98305, 2.99875, 3.01546, 3.03391, 3.05382, 3.07422, 3.09379, 3.11102, 3.12465, 3.13416, 3.14004, 3.14404, 3.14857, 3.15629, 3.17018, 3.19139, 3.22069, 3.25817, 3.30284, 3.35239, 3.40286, 3.44957, 3.48842, 3.51727, 3.53676, 3.54895, 3.55599, 3.55967, 3.56117, 3.56091, 3.55872, 3.55451, 3.54823, 3.53989, 3.52958, 3.51748, 3.50394, 3.48913, 3.47321, 3.45626, 3.43843, 3.41978, 3.40044, 3.38061, 3.36062, 3.34063, 3.32072, 3.30083, 3.28066, 3.26007, 3.23884, 3.21683, 3.19391, 3.17022, 3.14621, 3.12244, 3.09934, 3.07716, 3.05579, 3.03495, 3.01437, 2.99393, 2.97357, 2.95318, 2.93267, 2.91191, 2.89096)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.48451, 3.49135, 3.49814, 3.50489, 3.51172, 3.51873, 3.5259, 3.53318, 3.54071, 3.54849, 3.55644, 3.56464, 3.57317, 3.58208, 3.59138, 3.60112, 3.6112, 3.62184, 3.63309, 3.64489, 3.65725, 3.66984, 3.6823, 3.69441, 3.70617, 3.7178, 3.72966, 3.74219, 3.75576, 3.77055, 3.7863, 3.80241, 3.81833, 3.83392, 3.84971, 3.86662, 3.88536, 3.90544, 3.92594, 3.94548, 3.96255, 3.97579, 3.98447, 3.98901, 3.99094, 3.99268, 3.99703, 4.00691, 4.0233, 4.04678, 4.07732, 4.11388, 4.15431, 4.19534, 4.23334, 4.26535, 4.28997, 4.30757, 4.31939, 4.32707, 4.3322, 4.33546, 4.33731, 4.33745, 4.33589, 4.3326, 4.32758, 4.32093, 4.31281, 4.30343, 4.29299, 4.28149, 4.26907, 4.2559, 4.24204, 4.22749, 4.21255, 4.19749, 4.18245, 4.16748, 4.15254, 4.13745, 4.12198, 4.10575, 4.08849, 4.07008, 4.05071, 4.03094, 4.01145, 3.99255, 3.97422, 3.95634, 3.93865, 3.92098, 3.90326, 3.88547, 3.86741, 3.84885, 3.82957, 3.80973)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.32289, 3.32988, 3.33671, 3.34351, 3.35041, 3.35752, 3.36478, 3.37218, 3.37992, 3.38802, 3.39639, 3.405, 3.41396, 3.42346, 3.4336, 3.44424, 3.4552, 3.46674, 3.47931, 3.49255, 3.50631, 3.52039, 3.53451, 3.54839, 3.56181, 3.57481, 3.58768, 3.60141, 3.61664, 3.63352, 3.65187, 3.67102, 3.69025, 3.70922, 3.72814, 3.74779, 3.76919, 3.79253, 3.81681, 3.84067, 3.86255, 3.88085, 3.89436, 3.90296, 3.90789, 3.91149, 3.91676, 3.92679, 3.94425, 3.96963, 4.00317, 4.04437, 4.09133, 4.14051, 4.1875, 4.22847, 4.26129, 4.28582, 4.30327, 4.31539, 4.32391, 4.33007, 4.33461, 4.33767, 4.33869, 4.33761, 4.33448, 4.32962, 4.32324, 4.31528, 4.30588, 4.2954, 4.28411, 4.27209, 4.25902, 4.24516, 4.23058, 4.21576, 4.20114, 4.18673, 4.1721, 4.15727, 4.14239, 4.12713, 4.11084, 4.09316, 4.0742, 4.05465, 4.03541, 4.01694, 3.99917, 3.98182, 3.96473, 3.94794, 3.93132, 3.91463, 3.89764, 3.88028, 3.86239, 3.84393)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.09812, 3.10292, 3.10775, 3.11264, 3.11762, 3.12276, 3.12814, 3.13385, 3.1399, 3.14639, 3.1532, 3.16037, 3.16801, 3.17616, 3.1849, 3.19435, 3.20441, 3.21504, 3.22648, 3.23877, 3.25191, 3.26547, 3.27903, 3.29222, 3.30489, 3.31721, 3.32954, 3.34262, 3.35729, 3.374, 3.39256, 3.41218, 3.43186, 3.45109, 3.47012, 3.48988, 3.51132, 3.53474, 3.559, 3.58251, 3.60334, 3.61944, 3.62929, 3.63273, 3.6313, 3.62793, 3.62616, 3.62919, 3.64, 3.65937, 3.68749, 3.72365, 3.76584, 3.81063, 3.85387, 3.89173, 3.92184, 3.94387, 3.95919, 3.96957, 3.9767, 3.98149, 3.98459, 3.98611, 3.98588, 3.98373, 3.9797, 3.97396, 3.96665, 3.95793, 3.94795, 3.93688, 3.92487, 3.912, 3.89835, 3.88399, 3.86889, 3.8534, 3.83797, 3.82281, 3.80771, 3.79253, 3.77706, 3.76104, 3.74391, 3.72527, 3.7052, 3.68429, 3.66345, 3.6433, 3.62404, 3.6055, 3.58735, 3.56935, 3.55131, 3.53315, 3.51464, 3.49539, 3.47518, 3.45412)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.49423, 3.50312, 3.51194, 3.52075, 3.52962, 3.53865, 3.54785, 3.5572, 3.56678, 3.57669, 3.58676, 3.59708, 3.60782, 3.61903, 3.63075, 3.643, 3.65571, 3.669, 3.68287, 3.69735, 3.71238, 3.72757, 3.74256, 3.75714, 3.77129, 3.78511, 3.79918, 3.81416, 3.83068, 3.84889, 3.86839, 3.8885, 3.90855, 3.92817, 3.94781, 3.96839, 3.99073, 4.01439, 4.03817, 4.0604, 4.07923, 4.09297, 4.10073, 4.10284, 4.10113, 4.09862, 4.0986, 4.10444, 4.11722, 4.13739, 4.16458, 4.19784, 4.2351, 4.27335, 4.30928, 4.34014, 4.36454, 4.38274, 4.39601, 4.40592, 4.41375, 4.42, 4.42489, 4.42827, 4.43025, 4.43071, 4.42959, 4.42706, 4.42328, 4.4183, 4.41224, 4.40525, 4.39748, 4.38897, 4.37969, 4.36951, 4.3592, 4.34845, 4.33765, 4.3267, 4.31571, 4.30474, 4.29333, 4.28121, 4.26795, 4.25336, 4.23764, 4.22126, 4.20497, 4.18935, 4.17443, 4.15995, 4.14564, 4.1314, 4.1171, 4.10245, 4.08714, 4.07115, 4.0542, 4.03646)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.92851, 2.93017, 2.93187, 2.9337, 2.93578, 2.9382, 2.941, 2.94417, 2.94783, 2.95204, 2.95678, 2.96201, 2.96788, 2.97455, 2.98211, 2.99057, 2.99989, 3.01023, 3.02158, 3.03401, 3.0472, 3.06066, 3.07379, 3.0862, 3.09795, 3.10947, 3.12166, 3.1356, 3.15201, 3.1711, 3.19236, 3.21471, 3.23696, 3.25848, 3.27975, 3.30176, 3.3255, 3.3502, 3.37423, 3.39535, 3.41109, 3.41944, 3.41959, 3.41241, 3.40057, 3.38797, 3.37864, 3.37668, 3.38345, 3.39964, 3.425, 3.45817, 3.49658, 3.53652, 3.57394, 3.60543, 3.62923, 3.64559, 3.65602, 3.6623, 3.66588, 3.66774, 3.66813, 3.6671, 3.66444, 3.66012, 3.65415, 3.64666, 3.6379, 3.62811, 3.61744, 3.60606, 3.59413, 3.58168, 3.56862, 3.55514, 3.54135, 3.52768, 3.51436, 3.50147, 3.4889, 3.47626, 3.46324, 3.44945, 3.43448, 3.41811, 3.40045, 3.38217, 3.36412, 3.34692, 3.33079, 3.31543, 3.30039, 3.28536, 3.27006, 3.25427, 3.23769, 3.21995, 3.20092, 3.18088)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.9358, 3.94266, 3.94968, 3.95693, 3.96451, 3.97251, 3.981, 3.99008, 3.99987, 4.01044, 4.02156, 4.03351, 4.04644, 4.06052, 4.07584, 4.09238, 4.11019, 4.12948, 4.15043, 4.173, 4.19651, 4.22021, 4.24325, 4.26499, 4.28549, 4.30555, 4.32665, 4.35083, 4.3788, 4.41103, 4.44659, 4.48381, 4.52073, 4.55599, 4.58994, 4.62395, 4.6598, 4.6968, 4.732, 4.76194, 4.7825, 4.7909, 4.78667, 4.77176, 4.7503, 4.72829, 4.71132, 4.70505, 4.711, 4.72992, 4.76139, 4.80365, 4.85314, 4.90452, 4.95233, 4.99246, 5.02287, 5.04447, 5.05891, 5.0676, 5.07368, 5.07694, 5.07865, 5.07842, 5.07662, 5.07325, 5.06758, 5.0596, 5.05017, 5.04002, 5.02925, 5.01748, 5.00478, 4.99153, 4.97773, 4.96294, 4.94791, 4.93285, 4.91865, 4.90519, 4.89214, 4.87931, 4.86574, 4.85063, 4.8335, 4.8144, 4.79382, 4.77219, 4.75046, 4.72986, 4.71065, 4.69237, 4.67427, 4.65572, 4.63634, 4.61585, 4.59375, 4.56988, 4.54406, 4.51644)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(4.23728, 4.24721, 4.25737, 4.26773, 4.27847, 4.28968, 4.30133, 4.31331, 4.32587, 4.33927, 4.3533, 4.36811, 4.38382, 4.40059, 4.41851, 4.43762, 4.45793, 4.47986, 4.50321, 4.52804, 4.55394, 4.58015, 4.60577, 4.63006, 4.65297, 4.67547, 4.69899, 4.72511, 4.75483, 4.78872, 4.82591, 4.86466, 4.90302, 4.93974, 4.97546, 5.0117, 5.04878, 5.08553, 5.12114, 5.15256, 5.17583, 5.18716, 5.18529, 5.17251, 5.15324, 5.13239, 5.11692, 5.11116, 5.11696, 5.13511, 5.16545, 5.20561, 5.25166, 5.29921, 5.34405, 5.3824, 5.41183, 5.43269, 5.44697, 5.45467, 5.45922, 5.46171, 5.46438, 5.46638, 5.46712, 5.46541, 5.46029, 5.4526, 5.44467, 5.43705, 5.42766, 5.41663, 5.40614, 5.39565, 5.38425, 5.36992, 5.35611, 5.34274, 5.3304, 5.31825, 5.3069, 5.29543, 5.28391, 5.27165, 5.25717, 5.23997, 5.22008, 5.19951, 5.17987, 5.16148, 5.14462, 5.12819, 5.11187, 5.09518, 5.0776, 5.05895, 5.03826, 5.01571, 4.99107, 4.96543)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.84077, 2.84138, 2.84216, 2.84321, 2.84468, 2.84661, 2.84904, 2.85212, 2.85591, 2.86056, 2.86588, 2.87203, 2.87921, 2.88763, 2.89747, 2.90885, 2.92167, 2.936, 2.95182, 2.96888, 2.98659, 3.00404, 3.02031, 3.03492, 3.0481, 3.06084, 3.07483, 3.0916, 3.11203, 3.13644, 3.16418, 3.19372, 3.22322, 3.25153, 3.27889, 3.30659, 3.33604, 3.36656, 3.39592, 3.42106, 3.43855, 3.4455, 3.44067, 3.42539, 3.40351, 3.38041, 3.3615, 3.35191, 3.35309, 3.36571, 3.3894, 3.42274, 3.46295, 3.506, 3.54719, 3.58248, 3.60955, 3.62863, 3.64131, 3.64952, 3.65493, 3.65851, 3.66065, 3.66101, 3.65974, 3.65677, 3.65216, 3.64604, 3.6387, 3.63043, 3.62127, 3.6113, 3.60073, 3.58971, 3.57831, 3.56639, 3.55414, 3.54192, 3.53018, 3.51907, 3.50848, 3.49794, 3.48699, 3.47509, 3.46163, 3.44619, 3.4289, 3.41062, 3.39253, 3.37554, 3.35989, 3.34527, 3.33101, 3.31659, 3.30169, 3.28603, 3.26919, 3.25047, 3.22976, 3.20761)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.86657, 2.87122, 2.87584, 2.88043, 2.88497, 2.88953, 2.89418, 2.89895, 2.90382, 2.90877, 2.9138, 2.91894, 2.9242, 2.92955, 2.93504, 2.94068, 2.94646, 2.95238, 2.95846, 2.96471, 2.97112, 2.97756, 2.98394, 2.99019, 2.99631, 3.00232, 3.00829, 3.01423, 3.02023, 3.02633, 3.0325, 3.03864, 3.04474, 3.05107, 3.05803, 3.06597, 3.07511, 3.08552, 3.0972, 3.10992, 3.1234, 3.13736, 3.15155, 3.16599, 3.18099, 3.19713, 3.21511, 3.23578, 3.25991, 3.28836, 3.32167, 3.35914, 3.39883, 3.43732, 3.47098, 3.49739, 3.51608, 3.52838, 3.53617, 3.54102, 3.54382, 3.5451, 3.54507, 3.54355, 3.54042, 3.5356, 3.52913, 3.52115, 3.51172, 3.50104, 3.48924, 3.47644, 3.46274, 3.44825, 3.43303, 3.41722, 3.40095, 3.38435, 3.36755, 3.35051, 3.33325, 3.31575, 3.298, 3.27987, 3.26133, 3.24241, 3.2233, 3.20425, 3.18543, 3.16693, 3.14873, 3.13084, 3.11322, 3.09593, 3.07906, 3.06268, 3.04679, 3.03128, 3.01609, 3.0012)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.99082, 2.99619, 3.00148, 3.00675, 3.01198, 3.01724, 3.02254, 3.02793, 3.03339, 3.03897, 3.04465, 3.05042, 3.05627, 3.06224, 3.06836, 3.07465, 3.08106, 3.08763, 3.0944, 3.10141, 3.10855, 3.1157, 3.12275, 3.12966, 3.13644, 3.14309, 3.14966, 3.15626, 3.16304, 3.17004, 3.17717, 3.18424, 3.19125, 3.19845, 3.20625, 3.21507, 3.22514, 3.23653, 3.2492, 3.26277, 3.27688, 3.29113, 3.3053, 3.31946, 3.33401, 3.34967, 3.36733, 3.38798, 3.41243, 3.44152, 3.47573, 3.51441, 3.55552, 3.59557, 3.63075, 3.65851, 3.67839, 3.6917, 3.70039, 3.70604, 3.70955, 3.71159, 3.71219, 3.71138, 3.70887, 3.7046, 3.69864, 3.69109, 3.68212, 3.67186, 3.66046, 3.64807, 3.63476, 3.62052, 3.60553, 3.58991, 3.57383, 3.55746, 3.54088, 3.52407, 3.507, 3.48968, 3.47206, 3.45404, 3.43551, 3.41652, 3.39729, 3.37803, 3.35902, 3.34034, 3.322, 3.30393, 3.28607, 3.26853, 3.25135, 3.23463, 3.21832, 3.20231, 3.18656, 3.17105)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.15499, 2.1545, 2.15393, 2.15342, 2.153, 2.15263, 2.1523, 2.15209, 2.15214, 2.15232, 2.15265, 2.15305, 2.15356, 2.15424, 2.15514, 2.15623, 2.15748, 2.1589, 2.16058, 2.16251, 2.16471, 2.16703, 2.16941, 2.17181, 2.17418, 2.17661, 2.179, 2.18122, 2.18325, 2.18511, 2.1869, 2.18885, 2.19117, 2.19409, 2.19797, 2.20315, 2.21031, 2.2195, 2.23088, 2.24446, 2.26009, 2.27765, 2.2971, 2.31839, 2.34155, 2.36663, 2.39397, 2.4245, 2.4589, 2.49783, 2.5416, 2.5894, 2.63917, 2.68768, 2.73133, 2.76738, 2.79485, 2.81454, 2.82838, 2.83813, 2.84525, 2.85047, 2.85403, 2.85586, 2.85589, 2.85389, 2.84985, 2.84396, 2.83637, 2.82722, 2.81669, 2.80476, 2.79161, 2.77734, 2.76216, 2.74616, 2.72948, 2.71228, 2.69452, 2.67636, 2.65782, 2.63887, 2.61947, 2.59956, 2.57921, 2.55853, 2.53763, 2.51673, 2.49598, 2.47541, 2.45506, 2.43495, 2.41518, 2.39586, 2.37715, 2.35907, 2.34173, 2.32514, 2.30934, 2.29418)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.24852, 2.2489, 2.24928, 2.24972, 2.25024, 2.25086, 2.25166, 2.2526, 2.25367, 2.25498, 2.25642, 2.2581, 2.25995, 2.26195, 2.26411, 2.26644, 2.26896, 2.2718, 2.2749, 2.2782, 2.2817, 2.28531, 2.28902, 2.29283, 2.29663, 2.30034, 2.30396, 2.3075, 2.31105, 2.31455, 2.31802, 2.32149, 2.32506, 2.32896, 2.33351, 2.33911, 2.34617, 2.35473, 2.36477, 2.37632, 2.38925, 2.4034, 2.4186, 2.43478, 2.45196, 2.47044, 2.49066, 2.51366, 2.53999, 2.57033, 2.60496, 2.64345, 2.68425, 2.72462, 2.76124, 2.79127, 2.81329, 2.82783, 2.83658, 2.84126, 2.84333, 2.84354, 2.84222, 2.83926, 2.83461, 2.8282, 2.82, 2.81011, 2.79866, 2.78576, 2.7716, 2.75631, 2.73993, 2.7226, 2.70446, 2.68562, 2.66618, 2.6463, 2.62611, 2.60567, 2.58494, 2.56389, 2.54245, 2.52062, 2.49843, 2.47597, 2.45331, 2.43063, 2.40811, 2.38586, 2.36396, 2.34239, 2.32121, 2.30043, 2.28018, 2.26058, 2.24171, 2.22352, 2.20602, 2.18913)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.62659, 2.62827, 2.62998, 2.63168, 2.63345, 2.63534, 2.63737, 2.63952, 2.6418, 2.6442, 2.64677, 2.64948, 2.65235, 2.65533, 2.65844, 2.66175, 2.66513, 2.66875, 2.67258, 2.67661, 2.68079, 2.68509, 2.68942, 2.6937, 2.69794, 2.70225, 2.70643, 2.71056, 2.7146, 2.71856, 2.72248, 2.72643, 2.73048, 2.7348, 2.73964, 2.7453, 2.75226, 2.76052, 2.77011, 2.78095, 2.79299, 2.80607, 2.82005, 2.83493, 2.85085, 2.868, 2.88677, 2.9081, 2.93256, 2.96084, 2.99322, 3.02912, 3.0669, 3.10391, 3.13711, 3.16402, 3.18361, 3.19642, 3.20406, 3.20806, 3.20958, 3.20941, 3.20776, 3.20459, 3.19985, 3.1934, 3.18525, 3.17549, 3.16422, 3.15161, 3.13781, 3.12289, 3.10699, 3.09014, 3.07247, 3.05412, 3.03518, 3.01587, 2.99622, 2.97632, 2.95609, 2.93553, 2.91464, 2.89338, 2.87177, 2.84986, 2.82778, 2.80567, 2.78371, 2.76202, 2.74062, 2.71949, 2.69868, 2.67828, 2.65834, 2.63897, 2.62024, 2.60216, 2.58473, 2.5678)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.13203, 3.14117, 3.15015, 3.15899, 3.16774, 3.17642, 3.18504, 3.1936, 3.20214, 3.21066, 3.21913, 3.22759, 3.23606, 3.24454, 3.25304, 3.26157, 3.27014, 3.27879, 3.2875, 3.29634, 3.3052, 3.31408, 3.32297, 3.33181, 3.34055, 3.34926, 3.35777, 3.36619, 3.37447, 3.38264, 3.39072, 3.39872, 3.40672, 3.41491, 3.4235, 3.43277, 3.44309, 3.45456, 3.46717, 3.48094, 3.49584, 3.51181, 3.52873, 3.54649, 3.56513, 3.58482, 3.60596, 3.62921, 3.65508, 3.68411, 3.71668, 3.75254, 3.79061, 3.82891, 3.86499, 3.89659, 3.92226, 3.94198, 3.95668, 3.96754, 3.97573, 3.98199, 3.98652, 3.98942, 3.99071, 3.99027, 3.98813, 3.98433, 3.97893, 3.97211, 3.96402, 3.95479, 3.9445, 3.93332, 3.92123, 3.90845, 3.89505, 3.88129, 3.86723, 3.85287, 3.83821, 3.82326, 3.80804, 3.79254, 3.77668, 3.76055, 3.74429, 3.72799, 3.71176, 3.6957, 3.67987, 3.6643, 3.64899, 3.63392, 3.61912, 3.60474, 3.59085, 3.57745, 3.56438, 3.55159)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.48619, 2.48602, 2.48584, 2.48568, 2.48555, 2.48553, 2.48567, 2.48595, 2.48637, 2.48701, 2.48783, 2.48883, 2.49003, 2.49141, 2.49298, 2.49478, 2.49677, 2.49909, 2.50172, 2.50455, 2.5075, 2.51052, 2.51358, 2.51666, 2.5197, 2.52273, 2.5257, 2.52878, 2.53191, 2.53517, 2.53853, 2.54198, 2.54567, 2.54984, 2.55479, 2.56092, 2.56876, 2.57837, 2.5897, 2.60269, 2.61715, 2.63293, 2.64988, 2.66795, 2.68728, 2.70823, 2.73137, 2.75777, 2.78816, 2.82323, 2.86334, 2.90784, 2.95482, 3.00115, 3.04312, 3.07769, 3.10357, 3.12141, 3.13311, 3.1406, 3.14531, 3.14814, 3.14938, 3.14893, 3.14661, 3.14239, 3.13625, 3.12827, 3.11864, 3.10753, 3.09506, 3.08136, 3.06649, 3.05058, 3.0338, 3.01626, 2.99805, 2.97942, 2.96042, 2.94111, 2.92144, 2.90141, 2.88104, 2.86026, 2.83906, 2.81753, 2.79576, 2.77396, 2.75234, 2.73102, 2.71006, 2.68948, 2.66923, 2.6494, 2.63013, 2.61151, 2.5936, 2.57636, 2.55977, 2.54383)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.34779, 2.34836, 2.34898, 2.34967, 2.35039, 2.3512, 2.3522, 2.35343, 2.35483, 2.3564, 2.35815, 2.36006, 2.36218, 2.36449, 2.36698, 2.36967, 2.37253, 2.37571, 2.37922, 2.38295, 2.38687, 2.39093, 2.39508, 2.39926, 2.40342, 2.40756, 2.41165, 2.41562, 2.41957, 2.42356, 2.42755, 2.43156, 2.43569, 2.44015, 2.44529, 2.4515, 2.45923, 2.46859, 2.47949, 2.49187, 2.50554, 2.5203, 2.53599, 2.55256, 2.57008, 2.58889, 2.60954, 2.63312, 2.66031, 2.69178, 2.72786, 2.76801, 2.81055, 2.85264, 2.89079, 2.92198, 2.94487, 2.95995, 2.96894, 2.97371, 2.97564, 2.97567, 2.97406, 2.97078, 2.96572, 2.9588, 2.94999, 2.93943, 2.92727, 2.91365, 2.89872, 2.88256, 2.86529, 2.84711, 2.8281, 2.80837, 2.7881, 2.76742, 2.74645, 2.72521, 2.70369, 2.68186, 2.6597, 2.63717, 2.61423, 2.59096, 2.56751, 2.54407, 2.52083, 2.49791, 2.47535, 2.45316, 2.43134, 2.40996, 2.38914, 2.369, 2.34959, 2.3309, 2.3128, 2.29529)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.50688, 2.50783, 2.5088, 2.50985, 2.51101, 2.51229, 2.51369, 2.51523, 2.51692, 2.51888, 2.52103, 2.52331, 2.52576, 2.52841, 2.53122, 2.53423, 2.53752, 2.54095, 2.54465, 2.54859, 2.55274, 2.55703, 2.5614, 2.56579, 2.57016, 2.57449, 2.5788, 2.5831, 2.58734, 2.59156, 2.59575, 2.59996, 2.60428, 2.60886, 2.61396, 2.61985, 2.62702, 2.63551, 2.64524, 2.65624, 2.66831, 2.68128, 2.69503, 2.7095, 2.72479, 2.74116, 2.75911, 2.77959, 2.80313, 2.83051, 2.862, 2.89712, 2.93444, 2.97142, 3.00482, 3.03191, 3.05143, 3.06386, 3.07077, 3.07371, 3.07402, 3.07252, 3.06948, 3.06492, 3.05869, 3.05075, 3.04106, 3.0297, 3.01681, 3.00253, 2.98699, 2.9703, 2.95266, 2.93406, 2.91468, 2.8946, 2.87393, 2.85285, 2.83147, 2.80986, 2.78794, 2.76571, 2.74317, 2.72026, 2.69701, 2.67351, 2.64986, 2.62621, 2.60273, 2.57953, 2.55669, 2.53422, 2.51217, 2.49056, 2.46947, 2.44895, 2.42914, 2.41002, 2.39156, 2.37374)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.57329, 2.57469, 2.57607, 2.57752, 2.57901, 2.58059, 2.58229, 2.5841, 2.58607, 2.58821, 2.59052, 2.59298, 2.59557, 2.59828, 2.60114, 2.60422, 2.60749, 2.61106, 2.61476, 2.61866, 2.62275, 2.62698, 2.63126, 2.63551, 2.63966, 2.64366, 2.64768, 2.65166, 2.65566, 2.65962, 2.66358, 2.66758, 2.67172, 2.67622, 2.68139, 2.68757, 2.6952, 2.70434, 2.71501, 2.72708, 2.74039, 2.75468, 2.76977, 2.78568, 2.80254, 2.82079, 2.84095, 2.86413, 2.89093, 2.92208, 2.9578, 2.99751, 3.03945, 3.08073, 3.11805, 3.14868, 3.17141, 3.1869, 3.19679, 3.20273, 3.20604, 3.20751, 3.20742, 3.20577, 3.20237, 3.19716, 3.19011, 3.18134, 3.17102, 3.15925, 3.14616, 3.13187, 3.11645, 3.10009, 3.08288, 3.06495, 3.04641, 3.02738, 3.00803, 2.98837, 2.96835, 2.94801, 2.92733, 2.90623, 2.88468, 2.86277, 2.84068, 2.81855, 2.79656, 2.77481, 2.75338, 2.73226, 2.71149, 2.69111, 2.67121, 2.65191, 2.63319, 2.6151, 2.59755, 2.58054)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.50356, 2.50343, 2.50334, 2.50327, 2.50322, 2.50325, 2.50341, 2.50374, 2.50422, 2.50488, 2.50575, 2.50681, 2.50805, 2.50947, 2.51107, 2.51286, 2.51488, 2.51722, 2.51984, 2.52265, 2.52562, 2.52869, 2.53177, 2.53479, 2.53778, 2.54079, 2.54376, 2.54676, 2.54987, 2.5531, 2.55643, 2.55988, 2.56357, 2.56768, 2.57259, 2.57873, 2.58666, 2.59634, 2.60777, 2.62087, 2.63548, 2.65139, 2.66845, 2.68663, 2.70608, 2.72716, 2.7505, 2.77724, 2.80812, 2.84385, 2.88471, 2.93003, 2.97789, 3.02505, 3.06775, 3.10292, 3.1292, 3.14741, 3.15937, 3.16707, 3.17214, 3.17525, 3.17667, 3.17639, 3.17424, 3.17018, 3.16418, 3.15635, 3.14684, 3.13577, 3.1233, 3.10955, 3.09468, 3.07881, 3.06201, 3.04442, 3.0261, 3.00731, 2.98818, 2.96872, 2.94896, 2.92879, 2.90823, 2.8872, 2.86575, 2.84396, 2.82195, 2.79991, 2.77801, 2.75636, 2.73508, 2.71416, 2.69365, 2.67354, 2.65394, 2.63497, 2.61672, 2.59916, 2.58225, 2.56593)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.59001, 2.59226, 2.59453, 2.59682, 2.59909, 2.60136, 2.60372, 2.60621, 2.60887, 2.61164, 2.61449, 2.61741, 2.62049, 2.62371, 2.62704, 2.63052, 2.63417, 2.63796, 2.64196, 2.64617, 2.65055, 2.65501, 2.65944, 2.66382, 2.66814, 2.6724, 2.67662, 2.68074, 2.68488, 2.689, 2.69313, 2.6973, 2.70157, 2.70611, 2.71125, 2.71734, 2.72482, 2.73369, 2.74398, 2.75556, 2.76827, 2.7819, 2.79631, 2.8115, 2.82761, 2.84504, 2.86435, 2.88661, 2.91241, 2.94233, 2.97661, 3.01462, 3.05466, 3.09398, 3.1295, 3.15881, 3.18095, 3.19649, 3.20714, 3.21441, 3.21946, 3.22293, 3.22495, 3.2255, 3.22442, 3.22165, 3.2172, 3.21116, 3.20361, 3.19462, 3.18431, 3.17277, 3.16014, 3.14648, 3.13186, 3.11641, 3.10024, 3.08354, 3.06635, 3.04877, 3.03075, 3.0123, 2.99335, 2.97389, 2.95393, 2.93351, 2.9128, 2.89193, 2.87111, 2.85046, 2.83004, 2.80988, 2.78995, 2.77031, 2.75108, 2.73234, 2.71415, 2.69652, 2.67942, 2.66274)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.24077, 2.24064, 2.24046, 2.24035, 2.24029, 2.24031, 2.24045, 2.24075, 2.2412, 2.24187, 2.24274, 2.24381, 2.24508, 2.24656, 2.24824, 2.25014, 2.2523, 2.25474, 2.25752, 2.26059, 2.2639, 2.26741, 2.27096, 2.2745, 2.27804, 2.28149, 2.28501, 2.28848, 2.29211, 2.29587, 2.29977, 2.3038, 2.30799, 2.31249, 2.31766, 2.32392, 2.33163, 2.34133, 2.35283, 2.36604, 2.38071, 2.3966, 2.41346, 2.43119, 2.44994, 2.47011, 2.49224, 2.51708, 2.54601, 2.57958, 2.61839, 2.66216, 2.70935, 2.75705, 2.80156, 2.83955, 2.86915, 2.8905, 2.90518, 2.91508, 2.92187, 2.92634, 2.92908, 2.93014, 2.92938, 2.92673, 2.92215, 2.9157, 2.90755, 2.89783, 2.88671, 2.87434, 2.86082, 2.84623, 2.83066, 2.81431, 2.79729, 2.77977, 2.76189, 2.74368, 2.72513, 2.70628, 2.68706, 2.66739, 2.6473, 2.62676, 2.60581, 2.58472, 2.56375, 2.54305, 2.52269, 2.50266, 2.48295, 2.46358, 2.44466, 2.42634, 2.40867, 2.39164, 2.3752, 2.3593)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.2863, 2.28689, 2.28745, 2.288, 2.28864, 2.2894, 2.29022, 2.29114, 2.29227, 2.29358, 2.29504, 2.29669, 2.29849, 2.30044, 2.30259, 2.30498, 2.30761, 2.31047, 2.31365, 2.31709, 2.3207, 2.32442, 2.32817, 2.33185, 2.33547, 2.33904, 2.34265, 2.3463, 2.35009, 2.35395, 2.35791, 2.36202, 2.36636, 2.37116, 2.37677, 2.38359, 2.39209, 2.40235, 2.4143, 2.42779, 2.4426, 2.45849, 2.47529, 2.49301, 2.51186, 2.53232, 2.55503, 2.58117, 2.61134, 2.64615, 2.6858, 2.72962, 2.77564, 2.82077, 2.86151, 2.89507, 2.92038, 2.93819, 2.95021, 2.95837, 2.96387, 2.96754, 2.96964, 2.97012, 2.96892, 2.9659, 2.961, 2.95439, 2.94621, 2.93656, 2.92568, 2.91365, 2.90054, 2.88649, 2.87157, 2.85599, 2.8398, 2.82325, 2.80637, 2.78922, 2.77176, 2.75396, 2.73582, 2.7173, 2.69838, 2.67907, 2.65953, 2.63997, 2.62056, 2.60142, 2.58261, 2.56414, 2.54602, 2.52828, 2.511, 2.49429, 2.47822, 2.46271, 2.44769, 2.4332)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.90099, 2.90568, 2.91025, 2.91483, 2.91948, 2.92425, 2.92911, 2.93398, 2.93887, 2.94408, 2.94946, 2.95501, 2.96066, 2.96637, 2.97216, 2.97821, 2.98455, 2.9911, 2.99784, 3.00477, 3.01185, 3.01908, 3.02643, 3.03376, 3.04095, 3.048, 3.05491, 3.06183, 3.06883, 3.07591, 3.083, 3.09007, 3.09716, 3.10458, 3.11277, 3.12213, 3.13318, 3.14592, 3.1603, 3.17624, 3.19353, 3.21197, 3.23133, 3.25149, 3.27262, 3.29505, 3.31962, 3.34764, 3.37974, 3.41677, 3.45909, 3.50629, 3.55657, 3.60674, 3.65283, 3.69138, 3.72082, 3.74124, 3.7546, 3.76314, 3.76864, 3.77193, 3.77317, 3.77267, 3.7701, 3.76541, 3.75861, 3.74982, 3.73923, 3.72698, 3.7132, 3.69809, 3.68165, 3.66417, 3.64579, 3.62656, 3.60657, 3.58613, 3.56538, 3.54425, 3.52266, 3.50072, 3.47851, 3.45586, 3.43271, 3.40911, 3.38516, 3.36108, 3.33719, 3.31369, 3.2906, 3.26783, 3.24537, 3.22328, 3.20173, 3.18083, 3.16057, 3.14097, 3.12195, 3.10338)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.67705, 2.67872, 2.68046, 2.68219, 2.68399, 2.68588, 2.68785, 2.68994, 2.69218, 2.69465, 2.6973, 2.70006, 2.70294, 2.70598, 2.7092, 2.71262, 2.71621, 2.72009, 2.72416, 2.7285, 2.73298, 2.73755, 2.74215, 2.74673, 2.75122, 2.75567, 2.76001, 2.76439, 2.76876, 2.77316, 2.77765, 2.7822, 2.78685, 2.7918, 2.79735, 2.80389, 2.81183, 2.82127, 2.83206, 2.84415, 2.8573, 2.87135, 2.88613, 2.90159, 2.91796, 2.93562, 2.95516, 2.97778, 3.00408, 3.03476, 3.06999, 3.10921, 3.15071, 3.19165, 3.22868, 3.25905, 3.28149, 3.29654, 3.3059, 3.31124, 3.31396, 3.31483, 3.31412, 3.31178, 3.30769, 3.30176, 3.29399, 3.28448, 3.27337, 3.26085, 3.247, 3.23191, 3.21572, 3.19859, 3.18059, 3.16183, 3.14249, 3.12266, 3.10252, 3.08205, 3.06127, 3.04016, 3.01867, 2.99676, 2.9744, 2.95166, 2.9287, 2.9057, 2.88284, 2.86024, 2.83797, 2.81603, 2.79442, 2.7732, 2.75249, 2.7323, 2.71273, 2.69378, 2.67536, 2.65743)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.67705, 2.67872, 2.68046, 2.68219, 2.68399, 2.68588, 2.68785, 2.68994, 2.69218, 2.69465, 2.6973, 2.70006, 2.70294, 2.70598, 2.7092, 2.71262, 2.71621, 2.72009, 2.72416, 2.7285, 2.73298, 2.73755, 2.74215, 2.74673, 2.75122, 2.75567, 2.76001, 2.76439, 2.76876, 2.77316, 2.77765, 2.7822, 2.78685, 2.7918, 2.79735, 2.80389, 2.81183, 2.82127, 2.83206, 2.84415, 2.8573, 2.87135, 2.88613, 2.90159, 2.91796, 2.93562, 2.95516, 2.97778, 3.00408, 3.03476, 3.06999, 3.10921, 3.15071, 3.19165, 3.22868, 3.25905, 3.28149, 3.29654, 3.3059, 3.31124, 3.31396, 3.31483, 3.31412, 3.31178, 3.30769, 3.30176, 3.29399, 3.28448, 3.27337, 3.26085, 3.247, 3.23191, 3.21572, 3.19859, 3.18059, 3.16183, 3.14249, 3.12266, 3.10252, 3.08205, 3.06127, 3.04016, 3.01867, 2.99676, 2.9744, 2.95166, 2.9287, 2.9057, 2.88284, 2.86024, 2.83797, 2.81603, 2.79442, 2.7732, 2.75249, 2.7323, 2.71273, 2.69378, 2.67536, 2.65743)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.82935, 2.8312, 2.83314, 2.83512, 2.83725, 2.83954, 2.84201, 2.8447, 2.84764, 2.8508, 2.85422, 2.85787, 2.86177, 2.86588, 2.87023, 2.87484, 2.87973, 2.88498, 2.89057, 2.89642, 2.90255, 2.90883, 2.91519, 2.92158, 2.92787, 2.93408, 2.94028, 2.94643, 2.95266, 2.95893, 2.96522, 2.97156, 2.978, 2.98473, 2.99207, 3.00043, 3.01036, 3.02183, 3.03487, 3.04925, 3.06472, 3.08098, 3.09779, 3.11514, 3.13323, 3.15251, 3.17367, 3.19808, 3.22645, 3.25956, 3.29776, 3.34062, 3.38633, 3.43175, 3.47301, 3.50668, 3.53109, 3.54665, 3.55548, 3.55953, 3.56041, 3.55903, 3.55581, 3.5507, 3.54353, 3.53432, 3.52311, 3.50995, 3.49495, 3.47818, 3.45995, 3.44036, 3.41953, 3.39771, 3.3749, 3.35127, 3.32692, 3.30211, 3.27706, 3.25167, 3.22599, 3.19993, 3.17346, 3.14654, 3.11913, 3.09127, 3.06317, 3.03508, 3.00721, 2.9797, 2.95259, 2.92593, 2.89975, 2.87404, 2.84898, 2.82462, 2.80101, 2.77813, 2.75595, 2.73434)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.60265, 2.60327, 2.6039, 2.60448, 2.60511, 2.60584, 2.60667, 2.60758, 2.6087, 2.61, 2.61148, 2.61312, 2.61489, 2.61681, 2.61892, 2.62123, 2.62382, 2.62673, 2.62989, 2.63329, 2.63687, 2.64051, 2.64416, 2.64775, 2.65122, 2.65471, 2.65816, 2.66169, 2.66534, 2.66914, 2.67309, 2.67716, 2.68144, 2.68615, 2.69162, 2.69826, 2.7066, 2.71673, 2.72862, 2.74206, 2.75686, 2.7728, 2.78973, 2.80764, 2.82678, 2.84752, 2.87058, 2.8972, 2.92798, 2.96365, 3.00451, 3.04996, 3.0981, 3.1458, 3.18933, 3.22559, 3.25316, 3.27262, 3.2858, 3.29461, 3.30052, 3.30456, 3.30686, 3.30745, 3.30617, 3.30291, 3.29771, 3.29065, 3.28187, 3.27156, 3.25983, 3.24676, 3.2325, 3.21729, 3.20115, 3.18416, 3.16655, 3.14842, 3.1299, 3.11107, 3.09191, 3.07238, 3.05243, 3.03203, 3.0112, 2.98998, 2.96847, 2.94688, 2.92545, 2.9043, 2.88349, 2.86303, 2.84294, 2.82324, 2.804, 2.78534, 2.76731, 2.74997, 2.73318, 2.71695)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.36149, 2.36159, 2.36169, 2.36177, 2.3619, 2.36211, 2.36246, 2.36304, 2.36375, 2.36465, 2.3657, 2.36702, 2.36854, 2.37023, 2.37213, 2.37429, 2.37676, 2.37957, 2.38267, 2.38606, 2.38962, 2.39324, 2.39688, 2.40046, 2.40394, 2.40732, 2.41068, 2.41416, 2.41777, 2.42156, 2.42548, 2.42955, 2.43387, 2.43871, 2.44446, 2.45155, 2.46063, 2.47158, 2.48439, 2.4989, 2.51479, 2.53184, 2.54991, 2.56898, 2.58932, 2.61147, 2.63614, 2.66471, 2.69781, 2.73605, 2.77974, 2.82797, 2.87856, 2.92809, 2.97272, 3.0095, 3.03731, 3.05693, 3.07051, 3.08003, 3.08675, 3.09153, 3.09459, 3.09594, 3.0954, 3.09281, 3.08826, 3.08183, 3.07358, 3.06373, 3.05243, 3.03982, 3.02594, 3.01092, 2.99493, 2.97806, 2.96033, 2.9421, 2.92347, 2.90447, 2.88501, 2.86504, 2.8446, 2.82363, 2.80213, 2.78015, 2.75787, 2.73547, 2.71318, 2.69119, 2.66951, 2.64817, 2.62717, 2.60655, 2.58647, 2.56703, 2.54823, 2.53009, 2.51256, 2.49558)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.81636, 2.81816, 2.81987, 2.82157, 2.82326, 2.82501, 2.82689, 2.82895, 2.83111, 2.83354, 2.8361, 2.83882, 2.84176, 2.84491, 2.84829, 2.85194, 2.85588, 2.86018, 2.86481, 2.86976, 2.87497, 2.88035, 2.88576, 2.89111, 2.89637, 2.90161, 2.90696, 2.91231, 2.91784, 2.92353, 2.92937, 2.93537, 2.94162, 2.94831, 2.95591, 2.96496, 2.97605, 2.98926, 3.00455, 3.02177, 3.04066, 3.06097, 3.08243, 3.10501, 3.12895, 3.15468, 3.183, 3.21524, 3.25222, 3.29466, 3.34302, 3.39676, 3.45397, 3.51134, 3.56472, 3.61033, 3.64611, 3.67225, 3.69072, 3.70347, 3.71228, 3.71855, 3.72247, 3.72413, 3.72343, 3.72029, 3.71472, 3.70679, 3.69663, 3.68448, 3.67066, 3.65524, 3.63834, 3.62011, 3.60075, 3.58044, 3.55936, 3.53771, 3.51562, 3.49319, 3.47039, 3.44717, 3.42351, 3.39935, 3.3747, 3.34957, 3.32412, 3.29865, 3.27339, 3.24853, 3.22411, 3.2001, 3.17653, 3.15346, 3.13101, 3.10932, 3.0884, 3.06822, 3.04869, 3.02979)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.24678, 2.24636, 2.2459, 2.24548, 2.24514, 2.24491, 2.2448, 2.24477, 2.24493, 2.24532, 2.24592, 2.24663, 2.2475, 2.24858, 2.24989, 2.25141, 2.25322, 2.25528, 2.25764, 2.26025, 2.26303, 2.26587, 2.26867, 2.27139, 2.27401, 2.27655, 2.27916, 2.28194, 2.28489, 2.28798, 2.29121, 2.29458, 2.29815, 2.30216, 2.30688, 2.31272, 2.32013, 2.32909, 2.33956, 2.35135, 2.3642, 2.37789, 2.39227, 2.40738, 2.42346, 2.44108, 2.46089, 2.48409, 2.51123, 2.54286, 2.57911, 2.61929, 2.66147, 2.7027, 2.73972, 2.76999, 2.79258, 2.80829, 2.81888, 2.82594, 2.83057, 2.83359, 2.83517, 2.83525, 2.83373, 2.83046, 2.82546, 2.81885, 2.8108, 2.80142, 2.79078, 2.77902, 2.76618, 2.75239, 2.73778, 2.7225, 2.70655, 2.69011, 2.67333, 2.65627, 2.63891, 2.62117, 2.603, 2.58438, 2.56531, 2.54584, 2.5261, 2.50629, 2.4866, 2.46716, 2.448, 2.42916, 2.41067, 2.39252, 2.37482, 2.3576, 2.34095, 2.32485, 2.30926, 2.29413)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.57988, 2.58238, 2.58484, 2.58738, 2.59, 2.59273, 2.59557, 2.59852, 2.60164, 2.60496, 2.60855, 2.61232, 2.61626, 2.62036, 2.62464, 2.62917, 2.63396, 2.63898, 2.64426, 2.64982, 2.65563, 2.66161, 2.66764, 2.67359, 2.67942, 2.68515, 2.69092, 2.69676, 2.70274, 2.70882, 2.71499, 2.7212, 2.72755, 2.73421, 2.74142, 2.74962, 2.75928, 2.77042, 2.78299, 2.79681, 2.81161, 2.82701, 2.84279, 2.85894, 2.8757, 2.8936, 2.91341, 2.9363, 2.96298, 2.9942, 3.03031, 3.0709, 3.1143, 3.15759, 3.19718, 3.22988, 3.2542, 3.27057, 3.2807, 3.2865, 3.28937, 3.29029, 3.28951, 3.28712, 3.28302, 3.27698, 3.26899, 3.25919, 3.24776, 3.23483, 3.22059, 3.20518, 3.18864, 3.17104, 3.15255, 3.13341, 3.11365, 3.0935, 3.07304, 3.05228, 3.03119, 3.00985, 2.98815, 2.96607, 2.94357, 2.92065, 2.8974, 2.87407, 2.85095, 2.82821, 2.80591, 2.78398, 2.76237, 2.74118, 2.72048, 2.7004, 2.68096, 2.66208, 2.64372, 2.62581)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.67183, 2.67372, 2.67555, 2.67739, 2.67933, 2.68139, 2.68358, 2.68583, 2.68822, 2.69083, 2.69359, 2.69654, 2.69963, 2.70288, 2.70628, 2.70989, 2.71375, 2.71788, 2.7222, 2.72674, 2.73149, 2.73635, 2.74124, 2.74607, 2.75082, 2.75546, 2.75999, 2.76459, 2.76917, 2.77382, 2.77853, 2.78326, 2.78811, 2.79327, 2.79905, 2.80584, 2.81403, 2.82373, 2.83487, 2.84727, 2.86069, 2.87495, 2.88985, 2.90535, 2.9217, 2.93935, 2.95891, 2.98153, 3.00793, 3.03876, 3.07426, 3.11385, 3.15577, 3.19715, 3.23462, 3.26537, 3.28811, 3.30344, 3.313, 3.31853, 3.32146, 3.32252, 3.32194, 3.31978, 3.31592, 3.31021, 3.30266, 3.29334, 3.28239, 3.26998, 3.25625, 3.24134, 3.22533, 3.20827, 3.19036, 3.17171, 3.15243, 3.13268, 3.11256, 3.09216, 3.07146, 3.05041, 3.02894, 3.00707, 2.98476, 2.96204, 2.93905, 2.916, 2.89312, 2.87052, 2.84824, 2.8263, 2.80471, 2.7835, 2.76278, 2.74265, 2.72309, 2.70419, 2.6858, 2.66788)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.25985, 2.26009, 2.26042, 2.26068, 2.26102, 2.26148, 2.26205, 2.26277, 2.2637, 2.26481, 2.26614, 2.26771, 2.26945, 2.27135, 2.27349, 2.2759, 2.27854, 2.2815, 2.28484, 2.28844, 2.2923, 2.29628, 2.30028, 2.30424, 2.30814, 2.312, 2.31584, 2.31975, 2.32386, 2.32816, 2.33266, 2.33727, 2.34204, 2.34716, 2.35284, 2.35955, 2.36762, 2.37755, 2.3891, 2.40217, 2.41653, 2.4319, 2.44808, 2.46501, 2.48285, 2.502, 2.5231, 2.54689, 2.57457, 2.60688, 2.64432, 2.68661, 2.73221, 2.77824, 2.82108, 2.85753, 2.88583, 2.90616, 2.91994, 2.92916, 2.93529, 2.93916, 2.94138, 2.94196, 2.94078, 2.93773, 2.93282, 2.92612, 2.91774, 2.90785, 2.89661, 2.88419, 2.87065, 2.85612, 2.84069, 2.8244, 2.8075, 2.79021, 2.77252, 2.75458, 2.7363, 2.71771, 2.69879, 2.67949, 2.65973, 2.63952, 2.619, 2.59833, 2.57781, 2.55758, 2.53766, 2.51807, 2.49881, 2.4799, 2.46146, 2.44357, 2.4263, 2.40964, 2.39354, 2.3779)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.26737, 2.26801, 2.26855, 2.26914, 2.2698, 2.27054, 2.27141, 2.27241, 2.27358, 2.27494, 2.27648, 2.27824, 2.28016, 2.28225, 2.28453, 2.28708, 2.28989, 2.293, 2.2964, 2.30007, 2.30388, 2.30775, 2.3116, 2.3154, 2.31914, 2.32281, 2.32649, 2.33029, 2.33427, 2.33844, 2.34274, 2.34719, 2.35188, 2.357, 2.36291, 2.36996, 2.37872, 2.38914, 2.40115, 2.41456, 2.42916, 2.44469, 2.461, 2.47814, 2.49637, 2.5162, 2.53832, 2.56392, 2.59354, 2.62785, 2.66699, 2.71024, 2.75558, 2.79995, 2.8399, 2.87272, 2.89737, 2.91457, 2.92617, 2.93389, 2.93896, 2.94226, 2.94401, 2.94414, 2.94257, 2.9392, 2.93403, 2.92715, 2.9187, 2.90887, 2.89776, 2.88552, 2.87227, 2.85809, 2.84305, 2.82735, 2.81108, 2.79443, 2.77744, 2.76022, 2.7427, 2.72486, 2.70663, 2.68799, 2.66896, 2.64956, 2.62993, 2.61027, 2.59078, 2.57159, 2.5527, 2.53414, 2.51593, 2.49812, 2.48075, 2.46394, 2.44775, 2.43212, 2.41694, 2.40224)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.91627, 2.92053, 2.92478, 2.92903, 2.93332, 2.93767, 2.94212, 2.94667, 2.95135, 2.95622, 2.96122, 2.96637, 2.97163, 2.977, 2.98252, 2.98819, 2.99414, 3.00033, 3.00677, 3.01333, 3.02007, 3.02698, 3.03397, 3.0409, 3.04772, 3.05439, 3.06104, 3.06767, 3.07435, 3.08108, 3.08782, 3.09458, 3.1014, 3.10842, 3.1159, 3.12415, 3.13382, 3.14476, 3.15702, 3.17035, 3.18452, 3.19926, 3.21433, 3.22972, 3.24563, 3.26251, 3.28111, 3.30259, 3.32764, 3.35692, 3.39062, 3.42833, 3.4686, 3.50871, 3.54535, 3.57567, 3.59813, 3.61318, 3.62249, 3.62753, 3.62986, 3.63014, 3.62888, 3.6261, 3.62162, 3.61531, 3.60718, 3.59733, 3.58586, 3.57301, 3.55897, 3.54373, 3.5275, 3.51038, 3.49243, 3.47358, 3.45415, 3.43443, 3.4146, 3.39446, 3.37401, 3.35328, 3.33222, 3.31076, 3.28888, 3.26662, 3.24415, 3.22164, 3.19926, 3.1772, 3.15548, 3.13412, 3.1131, 3.09243, 3.07224, 3.05255, 3.03338, 3.01478, 2.99666, 2.97895)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.31514, 2.31512, 2.31509, 2.3151, 2.31517, 2.31538, 2.31581, 2.31649, 2.31734, 2.31842, 2.31972, 2.32124, 2.32308, 2.32519, 2.32754, 2.33018, 2.33307, 2.33637, 2.34005, 2.34404, 2.34826, 2.35253, 2.35674, 2.36087, 2.36493, 2.36894, 2.37296, 2.37714, 2.38155, 2.3862, 2.39111, 2.39623, 2.40157, 2.40727, 2.41376, 2.42145, 2.43104, 2.44242, 2.45556, 2.47019, 2.48607, 2.50291, 2.52053, 2.53889, 2.55822, 2.57908, 2.6022, 2.629, 2.66018, 2.69655, 2.73846, 2.78535, 2.83535, 2.88517, 2.93071, 2.96841, 2.99657, 3.01571, 3.02792, 3.03533, 3.03968, 3.04188, 3.0423, 3.04091, 3.03763, 3.03229, 3.02489, 3.01554, 3.0044, 2.99164, 2.97743, 2.96194, 2.94532, 2.92764, 2.90903, 2.8896, 2.86954, 2.84907, 2.82824, 2.80712, 2.78573, 2.76399, 2.74188, 2.71932, 2.69629, 2.67286, 2.64916, 2.62542, 2.60187, 2.57867, 2.55589, 2.53354, 2.51162, 2.49019, 2.46934, 2.44912, 2.42961, 2.41078, 2.39256, 2.37491)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.37006, 2.37051, 2.37103, 2.37163, 2.37234, 2.37315, 2.37409, 2.37524, 2.37657, 2.37818, 2.37998, 2.38196, 2.38413, 2.38646, 2.38901, 2.39187, 2.39497, 2.39836, 2.40195, 2.40585, 2.40998, 2.41427, 2.41865, 2.42304, 2.42729, 2.43153, 2.43582, 2.44013, 2.44457, 2.44914, 2.4538, 2.45849, 2.46327, 2.4683, 2.47386, 2.48033, 2.48811, 2.49717, 2.50746, 2.51888, 2.53115, 2.544, 2.55721, 2.57076, 2.58489, 2.59999, 2.61683, 2.63654, 2.65969, 2.68698, 2.71866, 2.75431, 2.79234, 2.83008, 2.86433, 2.89229, 2.91258, 2.92568, 2.93324, 2.9369, 2.93798, 2.93728, 2.93502, 2.9312, 2.92575, 2.91857, 2.90967, 2.89912, 2.88706, 2.87363, 2.85894, 2.84311, 2.82628, 2.80857, 2.79007, 2.7709, 2.75108, 2.73083, 2.71032, 2.68962, 2.66869, 2.64747, 2.62585, 2.60379, 2.58138, 2.55859, 2.53556, 2.51251, 2.48964, 2.46708, 2.44486, 2.42302, 2.40158, 2.38056, 2.36006, 2.34009, 2.32073, 2.30193, 2.28374, 2.26604)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.90188, 2.90403, 2.90624, 2.90848, 2.91075, 2.91307, 2.91548, 2.91807, 2.92082, 2.92381, 2.92696, 2.93029, 2.93382, 2.93757, 2.94155, 2.9458, 2.95033, 2.9552, 2.96037, 2.96577, 2.9714, 2.97715, 2.98282, 2.9883, 2.99358, 2.99863, 3.00361, 3.00856, 3.01365, 3.01893, 3.02439, 3.02994, 3.0356, 3.0416, 3.04827, 3.05612, 3.0658, 3.07719, 3.09017, 3.10446, 3.11975, 3.13574, 3.1522, 3.16912, 3.18689, 3.20619, 3.22797, 3.25371, 3.28409, 3.31992, 3.36141, 3.40785, 3.45722, 3.50614, 3.55068, 3.5876, 3.61553, 3.63533, 3.64887, 3.65817, 3.66469, 3.66928, 3.67207, 3.67307, 3.67216, 3.66922, 3.6642, 3.65718, 3.64833, 3.63775, 3.6256, 3.61199, 3.59693, 3.58064, 3.56322, 3.5448, 3.52544, 3.50543, 3.48487, 3.46386, 3.44234, 3.42027, 3.39759, 3.37425, 3.35019, 3.32553, 3.30042, 3.27509, 3.24981, 3.22475, 3.19998, 3.17552, 3.15139, 3.12767, 3.10446, 3.08183, 3.05976, 3.03824, 3.01719, 2.99663)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.76128, 2.76333, 2.76547, 2.76762, 2.76983, 2.77215, 2.77464, 2.77733, 2.78019, 2.78318, 2.78645, 2.78986, 2.79345, 2.79724, 2.80126, 2.80553, 2.81005, 2.81485, 2.81995, 2.82534, 2.83098, 2.83673, 2.84247, 2.84812, 2.85367, 2.85918, 2.8647, 2.87031, 2.87606, 2.88199, 2.8881, 2.8943, 2.90055, 2.90701, 2.914, 2.92198, 2.93138, 2.94221, 2.95428, 2.96731, 2.98097, 2.99489, 3.00885, 3.0229, 3.03735, 3.05293, 3.0705, 3.09144, 3.11641, 3.14617, 3.18083, 3.2198, 3.26122, 3.30217, 3.33929, 3.36978, 3.39235, 3.40754, 3.41705, 3.42258, 3.42544, 3.42646, 3.42589, 3.42367, 3.41969, 3.41391, 3.40627, 3.39687, 3.38587, 3.37345, 3.35972, 3.3448, 3.32881, 3.31181, 3.29399, 3.2754, 3.25622, 3.2366, 3.21674, 3.1966, 3.17619, 3.15543, 3.13426, 3.11263, 3.09055, 3.06801, 3.04511, 3.0221, 2.99923, 2.97671, 2.9546, 2.93286, 2.91148, 2.89044, 2.8698, 2.84967, 2.83006, 2.81094, 2.79227, 2.77402)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.27259, 3.28032, 3.28783, 3.29528, 3.30272, 3.3102, 3.31766, 3.32504, 3.33256, 3.34015, 3.3478, 3.35558, 3.36342, 3.37125, 3.37914, 3.38724, 3.39547, 3.40391, 3.41249, 3.42129, 3.43023, 3.43929, 3.44833, 3.45725, 3.46604, 3.4746, 3.48305, 3.49161, 3.50022, 3.50892, 3.51769, 3.52644, 3.53518, 3.54415, 3.55358, 3.56398, 3.57564, 3.58864, 3.60286, 3.61808, 3.63399, 3.65032, 3.66685, 3.68359, 3.70083, 3.7191, 3.73923, 3.76247, 3.78931, 3.82045, 3.85626, 3.89631, 3.93884, 3.98101, 4.01956, 4.05179, 4.07636, 4.09355, 4.10504, 4.11258, 4.11755, 4.12052, 4.1219, 4.12167, 4.11976, 4.11611, 4.11068, 4.10355, 4.09488, 4.08484, 4.07364, 4.06133, 4.04813, 4.03409, 4.01937, 4.004, 3.98821, 3.97213, 3.95588, 3.93947, 3.92291, 3.90611, 3.88904, 3.87163, 3.85382, 3.83568, 3.81729, 3.79883, 3.78055, 3.76258, 3.74492, 3.72757, 3.7105, 3.6937, 3.67716, 3.66098, 3.64524, 3.62991, 3.61487, 3.60001)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.60481, 2.6064, 2.60805, 2.60977, 2.61163, 2.61364, 2.61581, 2.61818, 2.6208, 2.62374, 2.62694, 2.63033, 2.63396, 2.63789, 2.64212, 2.64668, 2.6515, 2.6567, 2.66226, 2.66818, 2.67437, 2.68073, 2.68714, 2.69346, 2.69967, 2.70587, 2.71203, 2.71829, 2.72477, 2.73153, 2.73855, 2.74575, 2.75309, 2.76075, 2.7691, 2.77863, 2.78993, 2.803, 2.81763, 2.83348, 2.85017, 2.8673, 2.88463, 2.90215, 2.92015, 2.93936, 2.96081, 2.98605, 3.01594, 3.05126, 3.09228, 3.1384, 3.1877, 3.2368, 3.28163, 3.31865, 3.34602, 3.36429, 3.37554, 3.38189, 3.38515, 3.38621, 3.38525, 3.38242, 3.3775, 3.37046, 3.36136, 3.35026, 3.33728, 3.3226, 3.30641, 3.28882, 3.27006, 3.25022, 3.2294, 3.2077, 3.18523, 3.16237, 3.13918, 3.11576, 3.09202, 3.06789, 3.04325, 3.01808, 2.99244, 2.96634, 2.93991, 2.91338, 2.88698, 2.86098, 2.8355, 2.81053, 2.78599, 2.76191, 2.73834, 2.7154, 2.69317, 2.67161, 2.65057, 2.63004)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.44952, 3.45759, 3.46563, 3.4736, 3.48156, 3.48952, 3.49751, 3.50559, 3.5137, 3.5219, 3.53029, 3.53872, 3.54727, 3.55595, 3.56475, 3.57375, 3.58299, 3.59248, 3.60227, 3.6123, 3.62253, 3.63285, 3.64315, 3.65335, 3.6634, 3.67333, 3.68328, 3.69319, 3.70324, 3.71338, 3.7236, 3.73389, 3.74426, 3.75485, 3.76603, 3.77816, 3.79175, 3.80691, 3.8234, 3.84111, 3.8596, 3.87849, 3.89755, 3.91677, 3.9366, 3.95768, 3.98077, 4.00731, 4.03796, 4.07362, 4.11449, 4.16011, 4.20869, 4.25727, 4.30238, 4.34098, 4.37144, 4.39405, 4.41035, 4.42215, 4.43069, 4.4369, 4.44103, 4.44345, 4.444, 4.44245, 4.43872, 4.43287, 4.42521, 4.41594, 4.40507, 4.39299, 4.37956, 4.36492, 4.34932, 4.33279, 4.31561, 4.29785, 4.27985, 4.26159, 4.24301, 4.22396, 4.2045, 4.18452, 4.16397, 4.14296, 4.12168, 4.10025, 4.07891, 4.0579, 4.03726, 4.01699, 3.99705, 3.97741, 3.95819, 3.93945, 3.92121, 3.90339, 3.88594, 3.86888)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.16095, 3.16676, 3.1725, 3.17813, 3.18381, 3.18961, 3.19554, 3.2016, 3.2077, 3.21402, 3.22049, 3.22711, 3.23392, 3.24089, 3.248, 3.25529, 3.26284, 3.27069, 3.27891, 3.2874, 3.29606, 3.3048, 3.31355, 3.32223, 3.33081, 3.33927, 3.3476, 3.35604, 3.36463, 3.3734, 3.38226, 3.39116, 3.40014, 3.40933, 3.41907, 3.42975, 3.44193, 3.45555, 3.4705, 3.48656, 3.50337, 3.52058, 3.53797, 3.55557, 3.57371, 3.59298, 3.61431, 3.63895, 3.66769, 3.70124, 3.7399, 3.78311, 3.82909, 3.87483, 3.91674, 3.95171, 3.97812, 3.99648, 4.00855, 4.01617, 4.02081, 4.0234, 4.0243, 4.02349, 4.02079, 4.01613, 4.00949, 4.001, 3.99081, 3.97903, 3.9659, 3.95159, 3.93623, 3.91978, 3.90244, 3.8844, 3.8658, 3.8468, 3.82749, 3.80794, 3.78818, 3.76809, 3.74764, 3.72677, 3.70548, 3.68383, 3.66186, 3.6398, 3.61791, 3.5964, 3.57535, 3.55465, 3.53433, 3.51442, 3.49493, 3.47594, 3.45752, 3.43963, 3.42218, 3.40509)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.20781, 3.21294, 3.2181, 3.22318, 3.22838, 3.23368, 3.23907, 3.24463, 3.25038, 3.25634, 3.26259, 3.269, 3.27568, 3.28255, 3.2896, 3.29693, 3.3046, 3.3125, 3.32077, 3.32939, 3.33835, 3.34752, 3.35677, 3.36601, 3.37513, 3.38412, 3.39302, 3.40194, 3.411, 3.4203, 3.42977, 3.43928, 3.44882, 3.4585, 3.46858, 3.47953, 3.49176, 3.50575, 3.52126, 3.53807, 3.55583, 3.57413, 3.59263, 3.61127, 3.63027, 3.65016, 3.67178, 3.69607, 3.7246, 3.75817, 3.79742, 3.84225, 3.89112, 3.941, 3.98791, 4.02819, 4.05966, 4.08209, 4.09703, 4.10652, 4.11237, 4.11552, 4.11665, 4.11594, 4.11328, 4.10846, 4.1014, 4.09224, 4.08121, 4.06844, 4.05407, 4.03827, 4.02116, 4.00291, 3.98358, 3.96336, 3.9425, 3.92105, 3.89919, 3.87704, 3.85464, 3.83195, 3.80885, 3.78536, 3.7613, 3.73669, 3.71166, 3.68648, 3.66144, 3.63672, 3.61248, 3.58871, 3.5653, 3.54227, 3.51973, 3.49781, 3.47657, 3.45589, 3.43573, 3.41604)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.7875, 2.78852, 2.78955, 2.79057, 2.79163, 2.79278, 2.79408, 2.7956, 2.79736, 2.79933, 2.80154, 2.80393, 2.80657, 2.80953, 2.81281, 2.8164, 2.8203, 2.8246, 2.82931, 2.83436, 2.83964, 2.84496, 2.85016, 2.85518, 2.86003, 2.86484, 2.86976, 2.87494, 2.8805, 2.88652, 2.89288, 2.89952, 2.90641, 2.91368, 2.92179, 2.93133, 2.94296, 2.95657, 2.97207, 2.98908, 3.00712, 3.02579, 3.0449, 3.0645, 3.08499, 3.10725, 3.13236, 3.16194, 3.19693, 3.23813, 3.28576, 3.33913, 3.39599, 3.45246, 3.50401, 3.54689, 3.57934, 3.60221, 3.61774, 3.62815, 3.63532, 3.64023, 3.64321, 3.64417, 3.64301, 3.63956, 3.6338, 3.62587, 3.61597, 3.60433, 3.59113, 3.57648, 3.5605, 3.54333, 3.52508, 3.50593, 3.4861, 3.46575, 3.44502, 3.42397, 3.40253, 3.38068, 3.35838, 3.33556, 3.31213, 3.28812, 3.26368, 3.23911, 3.21473, 3.19076, 3.16728, 3.14422, 3.12155, 3.0993, 3.07755, 3.05638, 3.0359, 3.01602, 2.99669, 2.97785)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.8439, 2.84588, 2.8478, 2.84981, 2.85197, 2.85428, 2.85674, 2.85931, 2.86212, 2.86513, 2.86844, 2.87201, 2.87578, 2.87978, 2.88406, 2.88863, 2.89357, 2.8988, 2.90437, 2.91025, 2.91643, 2.92275, 2.92907, 2.93531, 2.9414, 2.94736, 2.95338, 2.95957, 2.96598, 2.97269, 2.97965, 2.98678, 2.99406, 3.00168, 3.00999, 3.01943, 3.03064, 3.04351, 3.05786, 3.07342, 3.08971, 3.10633, 3.12303, 3.13983, 3.15713, 3.17575, 3.19661, 3.22139, 3.25082, 3.28568, 3.32628, 3.37195, 3.42065, 3.46891, 3.51267, 3.54853, 3.57497, 3.59275, 3.60383, 3.61033, 3.61368, 3.61488, 3.61421, 3.61169, 3.60717, 3.60058, 3.59188, 3.58115, 3.56858, 3.55433, 3.53858, 3.52154, 3.50327, 3.48386, 3.46344, 3.44217, 3.42023, 3.39783, 3.37512, 3.35209, 3.32872, 3.30493, 3.28072, 3.25606, 3.23086, 3.20514, 3.17904, 3.1528, 3.12677, 3.10115, 3.076, 3.05132, 3.027, 3.00307, 2.97966, 2.95692, 2.93482, 2.91325, 2.89212, 2.87146)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.19967, 3.20278, 3.206, 3.2093, 3.21274, 3.21636, 3.22018, 3.22416, 3.22841, 3.23295, 3.23771, 3.24274, 3.24799, 3.25349, 3.25927, 3.26539, 3.27184, 3.27865, 3.28588, 3.29343, 3.30131, 3.30939, 3.31751, 3.32551, 3.3334, 3.34129, 3.34918, 3.35722, 3.36545, 3.37391, 3.38255, 3.39125, 3.39998, 3.4089, 3.41829, 3.42862, 3.44044, 3.45379, 3.46846, 3.48411, 3.50034, 3.51678, 3.53319, 3.54959, 3.56639, 3.58432, 3.60432, 3.62799, 3.65603, 3.68931, 3.72812, 3.77184, 3.8185, 3.86476, 3.90672, 3.94109, 3.96632, 3.9829, 3.99259, 3.9975, 3.99922, 3.99876, 3.99639, 3.99216, 3.98594, 3.97761, 3.96717, 3.95469, 3.94039, 3.92453, 3.90719, 3.88846, 3.86852, 3.8475, 3.82562, 3.80297, 3.77962, 3.75583, 3.73175, 3.7075, 3.68302, 3.65822, 3.63299, 3.60725, 3.58092, 3.55412, 3.527, 3.49983, 3.47286, 3.44625, 3.42011, 3.3944, 3.36914, 3.34433, 3.32, 3.29626, 3.27314, 3.25068, 3.22876, 3.20729)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.50771, 2.50836, 2.50896, 2.50962, 2.51038, 2.51128, 2.51235, 2.51365, 2.51523, 2.51706, 2.51911, 2.52147, 2.52412, 2.52705, 2.5303, 2.53392, 2.53787, 2.54234, 2.54727, 2.55253, 2.55802, 2.56361, 2.56913, 2.57449, 2.57966, 2.58477, 2.59, 2.59548, 2.60142, 2.60782, 2.6146, 2.62169, 2.629, 2.63665, 2.64515, 2.65504, 2.66701, 2.68095, 2.69665, 2.71371, 2.73162, 2.74992, 2.76837, 2.787, 2.80632, 2.82727, 2.85097, 2.87926, 2.91284, 2.95257, 2.99859, 3.05009, 3.10479, 3.15904, 3.20855, 3.24973, 3.28103, 3.30315, 3.31828, 3.32861, 3.33581, 3.3409, 3.34411, 3.34542, 3.34467, 3.34172, 3.33658, 3.32937, 3.32033, 3.30965, 3.29735, 3.28359, 3.26845, 3.25217, 3.23489, 3.21664, 3.19758, 3.17796, 3.15795, 3.13756, 3.11683, 3.09571, 3.07404, 3.05173, 3.02873, 3.00511, 2.98106, 2.95683, 2.93275, 2.90904, 2.88576, 2.86291, 2.84043, 2.8184, 2.79685, 2.77581, 2.75538, 2.73553, 2.71615, 2.69724)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.48686, 2.4818, 2.47689, 2.47213, 2.46752, 2.46308, 2.4589, 2.45508, 2.45155, 2.44836, 2.44548, 2.44293, 2.44076, 2.43899, 2.43762, 2.43655, 2.43582, 2.43553, 2.43571, 2.43627, 2.43717, 2.43831, 2.43959, 2.44096, 2.44245, 2.44407, 2.4459, 2.44811, 2.45097, 2.45449, 2.45865, 2.46335, 2.46851, 2.47431, 2.48121, 2.48979, 2.50071, 2.51378, 2.52872, 2.5451, 2.56244, 2.58025, 2.59813, 2.61604, 2.63445, 2.65429, 2.67678, 2.70365, 2.73566, 2.77351, 2.81731, 2.8662, 2.91796, 2.96917, 3.01591, 3.05497, 3.08492, 3.10651, 3.12157, 3.13206, 3.13961, 3.14501, 3.14855, 3.15014, 3.14973, 3.14727, 3.14271, 3.13612, 3.12767, 3.11755, 3.10597, 3.09305, 3.07886, 3.06355, 3.04721, 3.03, 3.01201, 2.99357, 2.97474, 2.95553, 2.93594, 2.91591, 2.89548, 2.87461, 2.85321, 2.83133, 2.80914, 2.78691, 2.76492, 2.74336, 2.72234, 2.70186, 2.68188, 2.66234, 2.64331, 2.62492, 2.60712, 2.58987, 2.57305, 2.55666)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.35001, 3.3581, 3.36609, 3.37403, 3.38189, 3.38971, 3.39757, 3.40553, 3.41355, 3.42171, 3.42991, 3.43814, 3.44651, 3.45503, 3.46369, 3.47254, 3.48152, 3.49071, 3.50021, 3.50994, 3.51984, 3.52977, 3.53963, 3.54939, 3.55906, 3.56859, 3.57798, 3.58742, 3.59705, 3.60689, 3.61688, 3.62691, 3.63698, 3.6472, 3.65785, 3.66944, 3.68247, 3.69682, 3.71233, 3.72874, 3.74572, 3.76291, 3.78007, 3.79722, 3.81467, 3.83316, 3.85356, 3.87735, 3.90518, 3.93767, 3.97511, 4.017, 4.06156, 4.10595, 4.14698, 4.18192, 4.20933, 4.22927, 4.2434, 4.25325, 4.26031, 4.26559, 4.26897, 4.27051, 4.27019, 4.26813, 4.26423, 4.25845, 4.25095, 4.24187, 4.23134, 4.21962, 4.20686, 4.19314, 4.17848, 4.16297, 4.14674, 4.13009, 4.11314, 4.09595, 4.0785, 4.06062, 4.04227, 4.02346, 4.00416, 3.98443, 3.96436, 3.94408, 3.92387, 3.90399, 3.88447, 3.86527, 3.84638, 3.82782, 3.80954, 3.7916, 3.77413, 3.75704, 3.74028, 3.72367)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.30175, 2.30322, 2.30467, 2.30611, 2.30758, 2.30913, 2.31074, 2.31247, 2.31435, 2.31639, 2.31856, 2.32089, 2.32339, 2.3261, 2.32903, 2.33221, 2.3356, 2.33931, 2.34334, 2.34755, 2.3519, 2.35627, 2.36052, 2.3646, 2.36857, 2.37245, 2.37648, 2.38075, 2.38537, 2.39042, 2.3958, 2.4014, 2.40715, 2.41315, 2.41972, 2.42723, 2.43616, 2.44644, 2.45788, 2.47021, 2.48304, 2.49604, 2.50904, 2.5221, 2.53561, 2.55023, 2.56687, 2.58685, 2.61073, 2.63908, 2.6721, 2.70924, 2.74884, 2.78831, 2.82451, 2.85478, 2.87789, 2.89424, 2.90537, 2.91289, 2.91801, 2.92153, 2.9236, 2.92421, 2.92328, 2.92075, 2.91665, 2.91101, 2.90395, 2.8956, 2.8861, 2.87562, 2.86427, 2.85213, 2.83924, 2.82569, 2.81167, 2.79729, 2.78263, 2.76781, 2.75279, 2.73749, 2.72184, 2.70584, 2.68943, 2.67263, 2.65554, 2.63835, 2.62126, 2.6045, 2.58811, 2.57205, 2.55629, 2.54081, 2.52567, 2.51089, 2.4965, 2.48249, 2.46875, 2.45533)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.418, 2.41326, 2.40866, 2.40415, 2.39977, 2.3956, 2.39173, 2.38817, 2.38485, 2.38189, 2.37929, 2.37703, 2.37512, 2.37357, 2.3724, 2.37161, 2.37123, 2.37129, 2.3718, 2.37265, 2.37383, 2.37527, 2.37687, 2.37856, 2.38034, 2.38217, 2.38433, 2.38701, 2.39044, 2.39472, 2.39974, 2.4053, 2.41134, 2.41802, 2.42572, 2.43506, 2.44666, 2.46033, 2.47571, 2.49226, 2.50931, 2.52622, 2.54257, 2.55841, 2.5744, 2.59162, 2.61153, 2.63592, 2.66565, 2.70138, 2.74318, 2.79008, 2.83987, 2.88918, 2.93417, 2.97177, 3.00072, 3.02165, 3.03633, 3.04658, 3.05397, 3.05934, 3.06288, 3.06464, 3.06441, 3.0621, 3.05772, 3.05148, 3.04349, 3.03385, 3.02278, 3.0104, 2.99686, 2.98221, 2.96656, 2.95007, 2.93287, 2.91522, 2.8971, 2.87873, 2.85994, 2.8408, 2.82128, 2.80131, 2.78077, 2.75969, 2.73821, 2.71668, 2.69547, 2.67474, 2.65457, 2.63493, 2.61572, 2.59702, 2.57887, 2.56125, 2.54406, 2.52722, 2.51069, 2.4946)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.58587, 2.58671, 2.5876, 2.58849, 2.58942, 2.59051, 2.59184, 2.59343, 2.59526, 2.59735, 2.59974, 2.60238, 2.60536, 2.60866, 2.61231, 2.61634, 2.62078, 2.62567, 2.63107, 2.63683, 2.64287, 2.64893, 2.65484, 2.66052, 2.66597, 2.67139, 2.67698, 2.68295, 2.68946, 2.6966, 2.70421, 2.71215, 2.72032, 2.72878, 2.73796, 2.74841, 2.76095, 2.77543, 2.79153, 2.80872, 2.8264, 2.84403, 2.86127, 2.87825, 2.89563, 2.9145, 2.93625, 2.96264, 2.99466, 3.03301, 3.07787, 3.12839, 3.18229, 3.23588, 3.28484, 3.32558, 3.35648, 3.37824, 3.39318, 3.40336, 3.41043, 3.41545, 3.41857, 3.41979, 3.41901, 3.41608, 3.41099, 3.40385, 3.39484, 3.38413, 3.37188, 3.35825, 3.34329, 3.32722, 3.31004, 3.29194, 3.27303, 3.25357, 3.23376, 3.21363, 3.19312, 3.17216, 3.1507, 3.12861, 3.10581, 3.0823, 3.05828, 3.03405, 3.00995, 2.98625, 2.96303, 2.94027, 2.91793, 2.89593, 2.87436, 2.85323, 2.83267, 2.81262, 2.79292, 2.77366)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.69766, 2.69948, 2.70131, 2.70313, 2.70502, 2.70703, 2.70922, 2.71167, 2.71436, 2.71732, 2.72054, 2.72399, 2.72773, 2.73185, 2.73635, 2.7412, 2.74643, 2.7521, 2.75824, 2.76484, 2.77172, 2.77861, 2.78531, 2.79175, 2.79797, 2.80408, 2.8104, 2.81713, 2.82453, 2.83269, 2.84144, 2.85054, 2.85985, 2.86946, 2.87977, 2.89132, 2.90496, 2.92053, 2.93765, 2.95571, 2.97403, 2.99195, 3.00912, 3.02567, 3.04234, 3.06034, 3.08129, 3.10713, 3.13878, 3.17702, 3.22204, 3.27301, 3.32761, 3.38211, 3.43207, 3.47379, 3.50564, 3.52833, 3.54393, 3.55475, 3.56243, 3.56793, 3.57162, 3.57341, 3.57308, 3.57059, 3.56596, 3.55929, 3.55072, 3.5404, 3.52854, 3.51521, 3.50057, 3.48478, 3.46793, 3.45016, 3.43159, 3.41243, 3.39286, 3.37297, 3.35276, 3.33211, 3.31089, 3.28902, 3.2664, 3.24301, 3.21905, 3.19489, 3.17083, 3.14718, 3.12408, 3.10142, 3.0791, 3.05713, 3.03554, 3.01444, 2.99378, 2.97347, 2.9535, 2.93385)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.07259, 3.07707, 3.08152, 3.08597, 3.0905, 3.09514, 3.09988, 3.10476, 3.10978, 3.11506, 3.12055, 3.12628, 3.13225, 3.13845, 3.1449, 3.15167, 3.15875, 3.16623, 3.17404, 3.18222, 3.19073, 3.1994, 3.20801, 3.2164, 3.22456, 3.23256, 3.24054, 3.24868, 3.25724, 3.26633, 3.27589, 3.28569, 3.29551, 3.30536, 3.31569, 3.32721, 3.34055, 3.35566, 3.37218, 3.38955, 3.407, 3.42379, 3.43942, 3.45392, 3.46803, 3.48289, 3.50014, 3.5217, 3.54856, 3.58157, 3.62085, 3.6658, 3.71446, 3.76356, 3.80911, 3.84756, 3.87708, 3.89791, 3.91179, 3.92133, 3.92812, 3.93276, 3.93549, 3.93642, 3.93551, 3.93267, 3.92771, 3.9207, 3.91183, 3.90113, 3.88882, 3.87534, 3.86049, 3.84454, 3.82725, 3.80908, 3.79004, 3.77038, 3.75041, 3.73002, 3.70931, 3.68798, 3.66599, 3.6433, 3.61973, 3.59535, 3.57032, 3.54496, 3.51966, 3.49467, 3.47022, 3.44614, 3.42233, 3.39884, 3.37572, 3.35297, 3.33047, 3.3083, 3.28639, 3.26463)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.70562, 2.70762, 2.70961, 2.71157, 2.71359, 2.71571, 2.71793, 2.72037, 2.72311, 2.72613, 2.72934, 2.73279, 2.73651, 2.74058, 2.74502, 2.74982, 2.75503, 2.76061, 2.76671, 2.77324, 2.78003, 2.78685, 2.7935, 2.79989, 2.80609, 2.81225, 2.81858, 2.8254, 2.83284, 2.84094, 2.84963, 2.85872, 2.86799, 2.87757, 2.88786, 2.89953, 2.91325, 2.92898, 2.94632, 2.96468, 2.98339, 3.00173, 3.01932, 3.03631, 3.05348, 3.07201, 3.09338, 3.11961, 3.15151, 3.18988, 3.23501, 3.28613, 3.34097, 3.39576, 3.44605, 3.48812, 3.52027, 3.5432, 3.55901, 3.5699, 3.57757, 3.58307, 3.58668, 3.58834, 3.58792, 3.58538, 3.58066, 3.57385, 3.56517, 3.55478, 3.54287, 3.52959, 3.51512, 3.49953, 3.48293, 3.4655, 3.44733, 3.42872, 3.40978, 3.39065, 3.37125, 3.35145, 3.33118, 3.31034, 3.28887, 3.26667, 3.24394, 3.22103, 3.1983, 3.17603, 3.15429, 3.13301, 3.11214, 3.09161, 3.07149, 3.05181, 3.03259, 3.01373, 2.99516, 2.9769)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.39787, 2.39827, 2.39871, 2.39925, 2.3999, 2.40071, 2.40172, 2.40302, 2.40459, 2.40649, 2.40871, 2.41121, 2.41399, 2.41713, 2.42071, 2.42473, 2.42914, 2.43398, 2.43931, 2.44509, 2.45116, 2.45731, 2.46333, 2.46909, 2.47461, 2.48014, 2.48589, 2.49211, 2.499, 2.50658, 2.5147, 2.52319, 2.53192, 2.54097, 2.55064, 2.56153, 2.57424, 2.58874, 2.6047, 2.62159, 2.63878, 2.65568, 2.672, 2.6879, 2.704, 2.72135, 2.74127, 2.76566, 2.7953, 2.83102, 2.87309, 2.92085, 2.97229, 3.02386, 3.0712, 3.11058, 3.14007, 3.16022, 3.17307, 3.18092, 3.18552, 3.18791, 3.18835, 3.18698, 3.18363, 3.17816, 3.1706, 3.16106, 3.14973, 3.13679, 3.12243, 3.10685, 3.09019, 3.07249, 3.05387, 3.0345, 3.01456, 2.99423, 2.97367, 2.9529, 2.93196, 2.91073, 2.88911, 2.86701, 2.84436, 2.82115, 2.79751, 2.7738, 2.75034, 2.72735, 2.70492, 2.683, 2.66153, 2.64047, 2.61986, 2.59977, 2.58023, 2.56117, 2.54243, 2.52407)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.7536, 2.75518, 2.75668, 2.75824, 2.75986, 2.76161, 2.76355, 2.76568, 2.76804, 2.77072, 2.77364, 2.77682, 2.78029, 2.7841, 2.78828, 2.79288, 2.79785, 2.80335, 2.80928, 2.8156, 2.82216, 2.82872, 2.83509, 2.84116, 2.84699, 2.85279, 2.85876, 2.86523, 2.87241, 2.88034, 2.88888, 2.89778, 2.90683, 2.91613, 2.92614, 2.93742, 2.95064, 2.96568, 2.98215, 2.99942, 3.01679, 3.03363, 3.0496, 3.06488, 3.08025, 3.097, 3.11658, 3.1411, 3.17136, 3.20808, 3.25142, 3.30045, 3.35292, 3.40516, 3.45295, 3.49279, 3.52312, 3.54456, 3.55932, 3.56938, 3.5764, 3.58133, 3.58449, 3.58574, 3.585, 3.58215, 3.57719, 3.57022, 3.56145, 3.55106, 3.53916, 3.52591, 3.51143, 3.49579, 3.47912, 3.46157, 3.44333, 3.42459, 3.40551, 3.3861, 3.36637, 3.34623, 3.32558, 3.30434, 3.28237, 3.25968, 3.23641, 3.21293, 3.18962, 3.16672, 3.14432, 3.12238, 3.10084, 3.07961, 3.05877, 3.03835, 3.01833, 2.9987, 2.97934, 2.9602)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.7832, 2.78493, 2.78661, 2.78827, 2.79001, 2.79191, 2.79401, 2.79633, 2.79889, 2.80179, 2.80493, 2.80834, 2.81204, 2.81612, 2.8206, 2.82546, 2.83077, 2.83661, 2.84296, 2.84976, 2.85683, 2.86392, 2.87081, 2.87741, 2.88377, 2.8901, 2.89658, 2.90361, 2.91139, 2.92, 2.92926, 2.93891, 2.94875, 2.95882, 2.96961, 2.98173, 2.9959, 3.01198, 3.02952, 3.04786, 3.0662, 3.08383, 3.10037, 3.11601, 3.13157, 3.14844, 3.16823, 3.19313, 3.22404, 3.26172, 3.30626, 3.35684, 3.41116, 3.46548, 3.51545, 3.55737, 3.58953, 3.61259, 3.62862, 3.63983, 3.6479, 3.65381, 3.65784, 3.65995, 3.65995, 3.65781, 3.65347, 3.64703, 3.63872, 3.6287, 3.6171, 3.60409, 3.58984, 3.5744, 3.55796, 3.54053, 3.52236, 3.50373, 3.48469, 3.46537, 3.44572, 3.42568, 3.4051, 3.38386, 3.36189, 3.33912, 3.31571, 3.29206, 3.26859, 3.2456, 3.22316, 3.20119, 3.17963, 3.15837, 3.13748, 3.11698, 3.09686, 3.0771, 3.05761, 3.03836)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.66921, 2.67101, 2.6728, 2.6746, 2.67649, 2.6785, 2.6807, 2.68311, 2.68573, 2.68855, 2.69159, 2.69479, 2.69825, 2.70201, 2.706, 2.71023, 2.7148, 2.71972, 2.72501, 2.7307, 2.73669, 2.74282, 2.74892, 2.75492, 2.76082, 2.76667, 2.77257, 2.77876, 2.78537, 2.79247, 2.79991, 2.80753, 2.81521, 2.82302, 2.83128, 2.84043, 2.85113, 2.86316, 2.8762, 2.88966, 2.90299, 2.9157, 2.92748, 2.93841, 2.94908, 2.9604, 2.97364, 2.99041, 3.01159, 3.03777, 3.06913, 3.10496, 3.14335, 3.18138, 3.2157, 3.24359, 3.26381, 3.27678, 3.28412, 3.28756, 3.28842, 3.28755, 3.28511, 3.28116, 3.27553, 3.26816, 3.25905, 3.24831, 3.23617, 3.22275, 3.20819, 3.19261, 3.17613, 3.15886, 3.14093, 3.12249, 3.10358, 3.08437, 3.06505, 3.04566, 3.02616, 3.00651, 2.98659, 2.96624, 2.94537, 2.92399, 2.90228, 2.88053, 2.85903, 2.83793, 2.81729, 2.79708, 2.77723, 2.75775, 2.73865, 2.71995, 2.70153, 2.68337, 2.66548, 2.64785)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.67577, 2.6781, 2.68057, 2.68308, 2.68571, 2.68853, 2.69157, 2.69489, 2.69854, 2.70251, 2.70676, 2.7113, 2.71615, 2.72137, 2.72701, 2.73307, 2.73955, 2.74652, 2.754, 2.76197, 2.77035, 2.77892, 2.78748, 2.79586, 2.80403, 2.81209, 2.82032, 2.82889, 2.83809, 2.84789, 2.85821, 2.86882, 2.8795, 2.89031, 2.90161, 2.91401, 2.92812, 2.94384, 2.96075, 2.97829, 2.99575, 3.01248, 3.02806, 3.04267, 3.05704, 3.07238, 3.09013, 3.11232, 3.13979, 3.17344, 3.21352, 3.25929, 3.30875, 3.35841, 3.40402, 3.44181, 3.4699, 3.48879, 3.50047, 3.50707, 3.51038, 3.51142, 3.51051, 3.50774, 3.50292, 3.496, 3.48695, 3.47585, 3.46298, 3.44857, 3.43265, 3.41545, 3.39706, 3.37756, 3.35728, 3.33633, 3.31474, 3.29277, 3.27057, 3.24835, 3.22594, 3.20318, 3.18005, 3.15643, 3.13218, 3.10726, 3.08186, 3.05635, 3.03107, 3.00627, 2.98206, 2.95833, 2.93503, 2.91218, 2.88979, 2.86786, 2.84635, 2.8252, 2.80435, 2.78379)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(4.08011, 4.08917, 4.09812, 4.10717, 4.11636, 4.12572, 4.13525, 4.14491, 4.15468, 4.16492, 4.17554, 4.18645, 4.19747, 4.20886, 4.22073, 4.23294, 4.2455, 4.25861, 4.27223, 4.28657, 4.30121, 4.3161, 4.33101, 4.34588, 4.3608, 4.37556, 4.39022, 4.40491, 4.42026, 4.4365, 4.45333, 4.47067, 4.48824, 4.50578, 4.52351, 4.54213, 4.56224, 4.58461, 4.6081, 4.63278, 4.65754, 4.68129, 4.70336, 4.72369, 4.74296, 4.76233, 4.78281, 4.8067, 4.83717, 4.87521, 4.92083, 4.97348, 5.03142, 5.09114, 5.14815, 5.1977, 5.23638, 5.26409, 5.28335, 5.29501, 5.30188, 5.30611, 5.30785, 5.30751, 5.30478, 5.29954, 5.29237, 5.28192, 5.26895, 5.2545, 5.23829, 5.22042, 5.20074, 5.17928, 5.15806, 5.13563, 5.11103, 5.08558, 5.06087, 5.03552, 5.01022, 4.98451, 4.95862, 4.93205, 4.90456, 4.87669, 4.84758, 4.81772, 4.78824, 4.75949, 4.73128, 4.70338, 4.67597, 4.64937, 4.62348, 4.59796, 4.57249, 4.54711, 4.52221, 4.49772)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.69029, 2.69155, 2.69276, 2.69401, 2.69537, 2.6969, 2.6986, 2.70053, 2.70275, 2.70526, 2.70805, 2.71117, 2.7146, 2.71841, 2.72263, 2.72727, 2.73244, 2.73811, 2.74434, 2.751, 2.75796, 2.76499, 2.77182, 2.77832, 2.78454, 2.79058, 2.79694, 2.80387, 2.81172, 2.82049, 2.82999, 2.83991, 2.84997, 2.86024, 2.87113, 2.88325, 2.89732, 2.91313, 2.93024, 2.94801, 2.96556, 2.98217, 2.99748, 3.01169, 3.02566, 3.04081, 3.05887, 3.08206, 3.11116, 3.14693, 3.1896, 3.23838, 3.29101, 3.34378, 3.39235, 3.43296, 3.46384, 3.48563, 3.50041, 3.51027, 3.51704, 3.52177, 3.52465, 3.52563, 3.52458, 3.52144, 3.51616, 3.50887, 3.49979, 3.48911, 3.47693, 3.46346, 3.44884, 3.4332, 3.41664, 3.39924, 3.3811, 3.3626, 3.34385, 3.3249, 3.30577, 3.28632, 3.26639, 3.24585, 3.22459, 3.20263, 3.18013, 3.15743, 3.13493, 3.11287, 3.09137, 3.07036, 3.04977, 3.02952, 3.00962, 2.99011, 2.97094, 2.95202, 2.9333, 2.91486)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.92248, 2.92659, 2.93066, 2.93476, 2.9389, 2.94308, 2.94739, 2.95193, 2.95676, 2.96173, 2.96689, 2.97227, 2.97786, 2.98379, 2.99011, 2.9968, 3.00377, 3.0111, 3.01896, 3.02727, 3.03586, 3.04451, 3.05301, 3.06118, 3.06903, 3.0768, 3.08475, 3.09322, 3.10233, 3.11213, 3.1225, 3.13318, 3.14395, 3.15491, 3.16634, 3.17886, 3.19301, 3.20873, 3.22561, 3.24301, 3.26018, 3.2765, 3.29172, 3.30608, 3.32035, 3.33582, 3.35393, 3.37659, 3.40472, 3.43908, 3.47988, 3.52634, 3.57629, 3.62625, 3.67206, 3.71023, 3.73918, 3.75953, 3.77312, 3.78205, 3.78784, 3.79147, 3.79327, 3.79326, 3.79136, 3.78742, 3.78144, 3.77352, 3.76378, 3.75249, 3.7399, 3.72614, 3.71132, 3.6955, 3.67875, 3.66128, 3.64318, 3.62484, 3.60627, 3.58762, 3.56874, 3.54952, 3.52987, 3.50973, 3.48896, 3.46756, 3.44566, 3.42355, 3.40161, 3.38009, 3.35907, 3.33851, 3.31828, 3.2983, 3.2786, 3.25925, 3.24021, 3.2214, 3.20277, 3.1843)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.07417, 3.07832, 3.08256, 3.08688, 3.09123, 3.09573, 3.10044, 3.10533, 3.11044, 3.1159, 3.12162, 3.12756, 3.13378, 3.14033, 3.14725, 3.15455, 3.16225, 3.1703, 3.17894, 3.18809, 3.19769, 3.20758, 3.21752, 3.22731, 3.23689, 3.24624, 3.25556, 3.26508, 3.27514, 3.28594, 3.29737, 3.30911, 3.32084, 3.33249, 3.34436, 3.35702, 3.37108, 3.3869, 3.40401, 3.42185, 3.43951, 3.45611, 3.47104, 3.48416, 3.49604, 3.5079, 3.52138, 3.53821, 3.56034, 3.58853, 3.62328, 3.66426, 3.70985, 3.75699, 3.80171, 3.8403, 3.87054, 3.89217, 3.90665, 3.91598, 3.92194, 3.92538, 3.92686, 3.92665, 3.92453, 3.92037, 3.91412, 3.90588, 3.89585, 3.8842, 3.87107, 3.85659, 3.8409, 3.82405, 3.80613, 3.78732, 3.76779, 3.74775, 3.72738, 3.70683, 3.68611, 3.66511, 3.6437, 3.62174, 3.59898, 3.57531, 3.55086, 3.52601, 3.50123, 3.47687, 3.45302, 3.42964, 3.40662, 3.38389, 3.36145, 3.3394, 3.31769, 3.29618, 3.27475, 3.25335)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.38078, 2.38131, 2.38193, 2.38262, 2.38344, 2.38444, 2.38567, 2.38712, 2.38881, 2.39093, 2.39336, 2.39607, 2.39913, 2.40258, 2.40648, 2.41084, 2.41573, 2.42118, 2.42714, 2.43349, 2.44015, 2.44684, 2.45331, 2.45944, 2.46526, 2.47099, 2.47707, 2.48374, 2.49133, 2.49984, 2.50913, 2.51884, 2.52869, 2.5387, 2.54918, 2.56081, 2.57425, 2.58935, 2.60564, 2.62234, 2.63857, 2.65354, 2.66685, 2.67873, 2.69011, 2.70243, 2.71745, 2.73727, 2.76279, 2.79473, 2.83319, 2.87739, 2.92526, 2.97336, 3.01761, 3.05455, 3.08254, 3.102, 3.1149, 3.12322, 3.12856, 3.13191, 3.13356, 3.13355, 3.13171, 3.12793, 3.12214, 3.11448, 3.10521, 3.09451, 3.08255, 3.0694, 3.05518, 3.03994, 3.0239, 3.00716, 2.98977, 2.97209, 2.95419, 2.93616, 2.91792, 2.89938, 2.88046, 2.86104, 2.8409, 2.81999, 2.7985, 2.77678, 2.75526, 2.73427, 2.71386, 2.69391, 2.67432, 2.65502, 2.63606, 2.6175, 2.59918, 2.58105, 2.56303, 2.5451)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.63825, 2.63919, 2.64014, 2.64123, 2.64246, 2.64389, 2.64558, 2.64761, 2.64998, 2.65278, 2.65598, 2.65958, 2.66361, 2.66813, 2.67324, 2.67897, 2.68525, 2.69222, 2.70001, 2.70847, 2.71745, 2.7266, 2.73557, 2.74411, 2.75221, 2.76007, 2.768, 2.7766, 2.78636, 2.79748, 2.80979, 2.82279, 2.83596, 2.84913, 2.86261, 2.87708, 2.89327, 2.91169, 2.93162, 2.95221, 2.97227, 2.9907, 3.00674, 3.02035, 3.03249, 3.04496, 3.05986, 3.0792, 3.10543, 3.13931, 3.18133, 3.23093, 3.28613, 3.34326, 3.39753, 3.44451, 3.48155, 3.50849, 3.52714, 3.53984, 3.54853, 3.55441, 3.5583, 3.56023, 3.55998, 3.5574, 3.55253, 3.5455, 3.53648, 3.52565, 3.51321, 3.49934, 3.48427, 3.46805, 3.45075, 3.43245, 3.41334, 3.3937, 3.37388, 3.35394, 3.33372, 3.31327, 3.29239, 3.27094, 3.24863, 3.22526, 3.20096, 3.17615, 3.15144, 3.12726, 3.10379, 3.0809, 3.05842, 3.03629, 3.01448, 2.99302, 2.97185, 2.95081, 2.92979, 2.90876)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.87837, 2.88271, 2.88708, 2.89146, 2.89592, 2.90046, 2.90509, 2.90997, 2.91502, 2.92024, 2.92567, 2.93129, 2.93715, 2.94329, 2.94974, 2.95651, 2.96366, 2.97114, 2.97908, 2.98747, 2.99621, 3.00505, 3.01382, 3.02242, 3.0308, 3.03906, 3.04747, 3.05634, 3.0659, 3.07621, 3.08711, 3.09828, 3.10944, 3.12059, 3.13215, 3.14464, 3.15853, 3.1737, 3.18951, 3.20521, 3.21989, 3.23277, 3.24348, 3.25224, 3.25995, 3.26813, 3.27841, 3.29284, 3.31223, 3.33716, 3.36772, 3.40306, 3.44131, 3.47964, 3.5148, 3.54412, 3.56629, 3.58167, 3.59171, 3.59801, 3.60182, 3.60394, 3.60454, 3.60367, 3.60122, 3.59715, 3.59143, 3.58416, 3.5755, 3.56566, 3.55478, 3.54297, 3.53027, 3.51677, 3.5027, 3.48804, 3.47291, 3.4576, 3.44223, 3.42687, 3.41144, 3.3958, 3.37986, 3.36343, 3.34636, 3.32867, 3.31044, 3.29199, 3.27373, 3.25592, 3.23864, 3.22181, 3.20524, 3.18885, 3.17261, 3.15657, 3.14061, 3.12457, 3.10847, 3.09232)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.47135, 2.47174, 2.47226, 2.47287, 2.47361, 2.47453, 2.47567, 2.47711, 2.47892, 2.48107, 2.48352, 2.48635, 2.48958, 2.49326, 2.49747, 2.50224, 2.50755, 2.5135, 2.52001, 2.52708, 2.5345, 2.54193, 2.54905, 2.55576, 2.56211, 2.56838, 2.57508, 2.5827, 2.59144, 2.60145, 2.61249, 2.62407, 2.63575, 2.64744, 2.65949, 2.67255, 2.6874, 2.70375, 2.72096, 2.73804, 2.75394, 2.76769, 2.77884, 2.78774, 2.79558, 2.80417, 2.81551, 2.83199, 2.85453, 2.8839, 2.92019, 2.96246, 3.00854, 3.05499, 3.0977, 3.13321, 3.15993, 3.17837, 3.19028, 3.19772, 3.2023, 3.20494, 3.20596, 3.20532, 3.20292, 3.19859, 3.19233, 3.1843, 3.17471, 3.16379, 3.1517, 3.13856, 3.1244, 3.10943, 3.09371, 3.07732, 3.06038, 3.04319, 3.02595, 3.00868, 2.99136, 2.97384, 2.95599, 2.9376, 2.91847, 2.89855, 2.87797, 2.85714, 2.83653, 2.81648, 2.7971, 2.77831, 2.75989, 2.74172, 2.72378, 2.70611, 2.68857, 2.67098, 2.6533, 2.63569)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.13359, 3.14021, 3.14671, 3.15323, 3.15981, 3.16644, 3.17315, 3.18009, 3.1872, 3.19458, 3.20217, 3.2099, 3.21785, 3.22611, 3.23471, 3.24369, 3.2531, 3.26288, 3.2732, 3.28394, 3.29503, 3.30621, 3.3172, 3.32782, 3.33804, 3.34806, 3.35835, 3.36935, 3.38124, 3.39417, 3.40786, 3.42189, 3.4359, 3.44978, 3.46387, 3.47879, 3.49511, 3.51269, 3.5308, 3.54847, 3.56471, 3.57862, 3.58982, 3.59871, 3.60641, 3.61462, 3.62533, 3.64088, 3.66217, 3.68981, 3.72383, 3.76341, 3.80641, 3.84966, 3.8896, 3.92328, 3.9493, 3.96804, 3.98114, 3.9904, 3.99704, 4.00178, 4.00485, 4.00646, 4.00641, 4.00452, 4.00082, 3.99543, 3.9885, 3.98028, 3.97088, 3.96041, 3.94888, 3.93642, 3.92322, 3.90931, 3.89486, 3.88006, 3.86511, 3.85008, 3.83486, 3.81935, 3.80341, 3.7868, 3.76934, 3.75101, 3.73197, 3.71258, 3.69334, 3.67453, 3.65619, 3.63822, 3.62045, 3.60274, 3.58512, 3.56752, 3.54991, 3.53214, 3.51407, 3.49581)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.70879, 2.70999, 2.71117, 2.7124, 2.71383, 2.71551, 2.71747, 2.71983, 2.72259, 2.7258, 2.72949, 2.73365, 2.73837, 2.74371, 2.74971, 2.75644, 2.76391, 2.77223, 2.7814, 2.79136, 2.8018, 2.81228, 2.82239, 2.83189, 2.84091, 2.84982, 2.85929, 2.86997, 2.88238, 2.8966, 2.91225, 2.92872, 2.94543, 2.9622, 2.97954, 2.99832, 3.01946, 3.04257, 3.06671, 3.09045, 3.11224, 3.1308, 3.14556, 3.15705, 3.16697, 3.17792, 3.19264, 3.21433, 3.24412, 3.28282, 3.3305, 3.38599, 3.44641, 3.50723, 3.56318, 3.60983, 3.64509, 3.6696, 3.68587, 3.69653, 3.70351, 3.70804, 3.71047, 3.71079, 3.70884, 3.70447, 3.69772, 3.68879, 3.67788, 3.66524, 3.65107, 3.63561, 3.61905, 3.60142, 3.58283, 3.56343, 3.54348, 3.52322, 3.50289, 3.48255, 3.46215, 3.44145, 3.42034, 3.39855, 3.37579, 3.35201, 3.32742, 3.30253, 3.27797, 3.25417, 3.23124, 3.20898, 3.18723, 3.16582, 3.14464, 3.12365, 3.10273, 3.08167, 3.06041, 3.03908)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.44037, 2.44137, 2.44241, 2.44349, 2.44469, 2.44612, 2.44783, 2.44975, 2.45196, 2.4546, 2.45753, 2.46082, 2.46452, 2.46869, 2.47339, 2.47864, 2.4844, 2.49087, 2.49791, 2.50552, 2.51343, 2.52131, 2.52889, 2.53603, 2.54281, 2.54951, 2.55665, 2.56477, 2.57415, 2.58488, 2.59665, 2.60896, 2.62139, 2.63388, 2.64674, 2.66062, 2.6761, 2.6929, 2.71029, 2.72724, 2.74266, 2.75564, 2.76579, 2.77356, 2.78021, 2.78758, 2.79774, 2.81314, 2.83459, 2.86272, 2.89753, 2.93806, 2.98213, 3.0264, 3.06701, 3.10077, 3.12619, 3.14375, 3.15525, 3.16253, 3.1671, 3.16978, 3.17085, 3.17034, 3.16813, 3.16412, 3.15832, 3.15088, 3.14198, 3.1318, 3.12057, 3.10838, 3.09533, 3.08149, 3.06701, 3.05197, 3.03653, 3.02088, 3.0052, 2.98956, 2.97388, 2.95803, 2.9419, 2.92526, 2.90794, 2.88989, 2.87126, 2.85241, 2.8338, 2.81578, 2.79845, 2.78167, 2.76524, 2.74903, 2.73301, 2.71715, 2.70132, 2.68542, 2.66937, 2.65327)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.67358, 2.67434, 2.67519, 2.6761, 2.67712, 2.67835, 2.67985, 2.68166, 2.68387, 2.68649, 2.68953, 2.693, 2.69698, 2.70155, 2.70682, 2.71286, 2.71963, 2.72727, 2.73573, 2.7448, 2.75424, 2.76361, 2.7725, 2.78072, 2.78843, 2.79605, 2.80442, 2.81417, 2.82571, 2.83904, 2.85383, 2.86946, 2.88526, 2.90096, 2.91697, 2.93407, 2.95314, 2.97379, 2.99519, 3.0161, 3.03507, 3.05087, 3.06296, 3.07183, 3.07902, 3.0869, 3.09809, 3.11537, 3.13987, 3.17231, 3.21287, 3.26075, 3.31378, 3.36849, 3.42059, 3.46606, 3.50251, 3.52969, 3.54909, 3.56259, 3.57202, 3.57867, 3.58296, 3.58507, 3.58488, 3.58227, 3.57725, 3.56999, 3.56077, 3.54985, 3.53734, 3.52347, 3.50834, 3.49221, 3.47504, 3.45706, 3.43851, 3.41953, 3.4005, 3.38145, 3.36239, 3.34316, 3.32355, 3.30336, 3.28234, 3.26037, 3.23765, 3.21466, 3.19199, 3.17005, 3.14903, 3.12878, 3.10904, 3.08964, 3.07051, 3.0516, 3.03275, 3.0138, 2.99462, 2.97534)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.46575, 2.46646, 2.46735, 2.46835, 2.46952, 2.47089, 2.4725, 2.47447, 2.47683, 2.47971, 2.48294, 2.48654, 2.49059, 2.49518, 2.50042, 2.50634, 2.51289, 2.52017, 2.5281, 2.5367, 2.5457, 2.55468, 2.5633, 2.57137, 2.57901, 2.58654, 2.5946, 2.60376, 2.61431, 2.62637, 2.6397, 2.65378, 2.66804, 2.68224, 2.69667, 2.71213, 2.72941, 2.74823, 2.76778, 2.78689, 2.80425, 2.81868, 2.82966, 2.83761, 2.84394, 2.85083, 2.86076, 2.87633, 2.89868, 2.92849, 2.96593, 3.01009, 3.05871, 3.10815, 3.15398, 3.19232, 3.22121, 3.24108, 3.25385, 3.26168, 3.26632, 3.26883, 3.26957, 3.26858, 3.26569, 3.26074, 3.25379, 3.24499, 3.23453, 3.22262, 3.20954, 3.19539, 3.1803, 3.16429, 3.14751, 3.13004, 3.11212, 3.094, 3.07586, 3.05775, 3.03959, 3.02127, 3.00259, 2.98335, 2.9633, 2.94233, 2.92065, 2.89868, 2.87699, 2.85596, 2.83571, 2.81611, 2.7969, 2.77795, 2.75922, 2.74063, 2.72212, 2.70349, 2.68459, 2.66562)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.59886, 2.59913, 2.59953, 2.60005, 2.60077, 2.60173, 2.60298, 2.60457, 2.60665, 2.60915, 2.6121, 2.61558, 2.61962, 2.6243, 2.62973, 2.63598, 2.64299, 2.65096, 2.65968, 2.6691, 2.67886, 2.68844, 2.69745, 2.70572, 2.7134, 2.72097, 2.72931, 2.73911, 2.75077, 2.76434, 2.77945, 2.7954, 2.81151, 2.8275, 2.84379, 2.86117, 2.8805, 2.90141, 2.92292, 2.94362, 2.96196, 2.97664, 2.98709, 2.99392, 2.99886, 3.00453, 3.01375, 3.0295, 3.05295, 3.08476, 3.12492, 3.17233, 3.22448, 3.27746, 3.32673, 3.36845, 3.40069, 3.42388, 3.43988, 3.45085, 3.45845, 3.46381, 3.46725, 3.46884, 3.46838, 3.46572, 3.46093, 3.45417, 3.44563, 3.43555, 3.42414, 3.41153, 3.39782, 3.38313, 3.36752, 3.35112, 3.33407, 3.31673, 3.29928, 3.28177, 3.26425, 3.24649, 3.22827, 3.20933, 3.18945, 3.16846, 3.14656, 3.12429, 3.10226, 3.08091, 3.06039, 3.04056, 3.02117, 3.00201, 2.98298, 2.96401, 2.94502, 2.92575, 2.9061, 2.88626)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.73763, 2.74109, 2.74458, 2.74814, 2.75179, 2.7556, 2.75967, 2.76403, 2.76866, 2.77362, 2.77892, 2.78456, 2.79053, 2.79693, 2.80383, 2.81124, 2.8192, 2.82779, 2.83706, 2.84702, 2.85753, 2.86829, 2.87894, 2.88925, 2.89928, 2.90919, 2.91948, 2.93061, 2.94301, 2.95671, 2.97145, 2.98671, 3.00196, 3.01703, 3.03246, 3.04905, 3.06758, 3.0876, 3.10824, 3.12825, 3.14622, 3.16095, 3.17191, 3.17956, 3.18538, 3.19169, 3.20096, 3.21612, 3.23816, 3.26783, 3.30505, 3.34881, 3.39668, 3.44502, 3.48968, 3.52719, 3.55589, 3.5762, 3.58995, 3.59914, 3.60532, 3.60955, 3.61203, 3.61279, 3.61166, 3.60858, 3.6036, 3.59683, 3.58846, 3.5787, 3.56774, 3.55568, 3.54271, 3.52888, 3.51429, 3.49905, 3.48335, 3.46745, 3.4516, 3.43584, 3.42006, 3.40408, 3.38768, 3.37066, 3.35272, 3.33379, 3.31407, 3.29404, 3.27428, 3.25513, 3.23664, 3.21866, 3.20099, 3.18344, 3.16598, 3.1486, 3.13113, 3.11335, 3.09517, 3.07675)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.44332, 2.44409, 2.44489, 2.44579, 2.44678, 2.44796, 2.44944, 2.45123, 2.45334, 2.45577, 2.45866, 2.46193, 2.46565, 2.46989, 2.47471, 2.48019, 2.48634, 2.49312, 2.50068, 2.50897, 2.51772, 2.52654, 2.53506, 2.54299, 2.55035, 2.5574, 2.56466, 2.57288, 2.58249, 2.59381, 2.60666, 2.6204, 2.63432, 2.64809, 2.66188, 2.67633, 2.69209, 2.70954, 2.72782, 2.74589, 2.76247, 2.77623, 2.78635, 2.79291, 2.79713, 2.80096, 2.8068, 2.81678, 2.83326, 2.85689, 2.88798, 2.92597, 2.96901, 3.01392, 3.05676, 3.09392, 3.12327, 3.14464, 3.15931, 3.16916, 3.17584, 3.1803, 3.18313, 3.18439, 3.1839, 3.1816, 3.17744, 3.17149, 3.16399, 3.15517, 3.14515, 3.13407, 3.12207, 3.10925, 3.09567, 3.08134, 3.06643, 3.05117, 3.03584, 3.02054, 3.00525, 2.9898, 2.97409, 2.95789, 2.94097, 2.92304, 2.90418, 2.88477, 2.86541, 2.84659, 2.82852, 2.81109, 2.79403, 2.77717, 2.7605, 2.74395, 2.72737, 2.71054, 2.6934, 2.67601)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.44699, 2.44795, 2.449, 2.45011, 2.45135, 2.45283, 2.45462, 2.45665, 2.45904, 2.46175, 2.46485, 2.46835, 2.47233, 2.47681, 2.48182, 2.48743, 2.49369, 2.50062, 2.50824, 2.51635, 2.52477, 2.53314, 2.54115, 2.54863, 2.55566, 2.56259, 2.57004, 2.57856, 2.58852, 2.59995, 2.61255, 2.62576, 2.63906, 2.65229, 2.6658, 2.68021, 2.69625, 2.71349, 2.73118, 2.74815, 2.76316, 2.77518, 2.7838, 2.78956, 2.79386, 2.79872, 2.80644, 2.81959, 2.83907, 2.86546, 2.89872, 2.93784, 2.98065, 3.02376, 3.06338, 3.09637, 3.12122, 3.13839, 3.14961, 3.15668, 3.16109, 3.16369, 3.16472, 3.16421, 3.16207, 3.15813, 3.15243, 3.14512, 3.13639, 3.12644, 3.11544, 3.10351, 3.09074, 3.07724, 3.06312, 3.0484, 3.03325, 3.0179, 3.00258, 2.98736, 2.97214, 2.95673, 2.94099, 2.92469, 2.90767, 2.88986, 2.87136, 2.85261, 2.8341, 2.81616, 2.79891, 2.78225, 2.766, 2.74996, 2.73402, 2.71818, 2.7023, 2.68622, 2.66984, 2.65336)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.73924, 2.74018, 2.74127, 2.74251, 2.74391, 2.74558, 2.74762, 2.75007, 2.75289, 2.75622, 2.75992, 2.76415, 2.76893, 2.77435, 2.78048, 2.78727, 2.79478, 2.80309, 2.81221, 2.82203, 2.83223, 2.84241, 2.85211, 2.86111, 2.86953, 2.8778, 2.88657, 2.89653, 2.9081, 2.92144, 2.93623, 2.9518, 2.96749, 2.98305, 2.99875, 3.01546, 3.03391, 3.05382, 3.07422, 3.09379, 3.11102, 3.12465, 3.13416, 3.14004, 3.14404, 3.14857, 3.15629, 3.17018, 3.19139, 3.22069, 3.25817, 3.30284, 3.35239, 3.40286, 3.44957, 3.48842, 3.51727, 3.53676, 3.54895, 3.55599, 3.55967, 3.56117, 3.56091, 3.55872, 3.55451, 3.54823, 3.53989, 3.52958, 3.51748, 3.50394, 3.48913, 3.47321, 3.45626, 3.43843, 3.41978, 3.40044, 3.38061, 3.36062, 3.34063, 3.32072, 3.30083, 3.28066, 3.26007, 3.23884, 3.21683, 3.19391, 3.17022, 3.14621, 3.12244, 3.09934, 3.07716, 3.05579, 3.03495, 3.01437, 2.99393, 2.97357, 2.95318, 2.93267, 2.91191, 2.89096)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.48451, 3.49135, 3.49814, 3.50489, 3.51172, 3.51873, 3.5259, 3.53318, 3.54071, 3.54849, 3.55644, 3.56464, 3.57317, 3.58208, 3.59138, 3.60112, 3.6112, 3.62184, 3.63309, 3.64489, 3.65725, 3.66984, 3.6823, 3.69441, 3.70617, 3.7178, 3.72966, 3.74219, 3.75576, 3.77055, 3.7863, 3.80241, 3.81833, 3.83392, 3.84971, 3.86662, 3.88536, 3.90544, 3.92594, 3.94548, 3.96255, 3.97579, 3.98447, 3.98901, 3.99094, 3.99268, 3.99703, 4.00691, 4.0233, 4.04678, 4.07732, 4.11388, 4.15431, 4.19534, 4.23334, 4.26535, 4.28997, 4.30757, 4.31939, 4.32707, 4.3322, 4.33546, 4.33731, 4.33745, 4.33589, 4.3326, 4.32758, 4.32093, 4.31281, 4.30343, 4.29299, 4.28149, 4.26907, 4.2559, 4.24204, 4.22749, 4.21255, 4.19749, 4.18245, 4.16748, 4.15254, 4.13745, 4.12198, 4.10575, 4.08849, 4.07008, 4.05071, 4.03094, 4.01145, 3.99255, 3.97422, 3.95634, 3.93865, 3.92098, 3.90326, 3.88547, 3.86741, 3.84885, 3.82957, 3.80973)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.38648, 3.39204, 3.39767, 3.40334, 3.40911, 3.41516, 3.4216, 3.42841, 3.43562, 3.44328, 3.45134, 3.45989, 3.469, 3.47874, 3.48917, 3.50034, 3.51227, 3.52516, 3.539, 3.55378, 3.56928, 3.58508, 3.60068, 3.61571, 3.63015, 3.64426, 3.65871, 3.67431, 3.69172, 3.71117, 3.73231, 3.75425, 3.77609, 3.79742, 3.81876, 3.84119, 3.86596, 3.89244, 3.91938, 3.94496, 3.96711, 3.98394, 3.9945, 3.99937, 4.00062, 4.00158, 4.00599, 4.01785, 4.0387, 4.06915, 4.10915, 4.15748, 4.21139, 4.26675, 4.31857, 4.36255, 4.39676, 4.42139, 4.43873, 4.45111, 4.46021, 4.46702, 4.47187, 4.47474, 4.47562, 4.47427, 4.47061, 4.4648, 4.45713, 4.44795, 4.43744, 4.42541, 4.41209, 4.39771, 4.38216, 4.36577, 4.34875, 4.33146, 4.31393, 4.29623, 4.27848, 4.2604, 4.24177, 4.22214, 4.20113, 4.17867, 4.15492, 4.13051, 4.10624, 4.08267, 4.05998, 4.03794, 4.01625, 3.99466, 3.97296, 3.95117, 3.9291, 3.90649, 3.88301, 3.85878)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.5593, 3.56522, 3.57129, 3.57747, 3.58383, 3.59043, 3.59735, 3.60471, 3.61261, 3.62094, 3.62971, 3.63896, 3.6487, 3.65904, 3.6701, 3.68198, 3.69452, 3.70801, 3.72235, 3.73766, 3.75366, 3.76994, 3.78602, 3.8016, 3.81667, 3.83159, 3.84706, 3.86378, 3.88241, 3.90302, 3.92523, 3.94825, 3.97119, 3.99367, 4.01627, 4.03991, 4.06586, 4.09347, 4.12136, 4.14779, 4.17059, 4.18808, 4.19942, 4.20513, 4.20742, 4.20952, 4.21507, 4.2281, 4.24984, 4.28129, 4.32244, 4.37198, 4.42694, 4.48289, 4.53478, 4.57832, 4.61133, 4.63427, 4.64928, 4.65865, 4.66423, 4.66762, 4.6691, 4.66838, 4.66538, 4.65997, 4.65237, 4.64278, 4.63121, 4.61788, 4.60316, 4.58706, 4.56996, 4.55183, 4.53264, 4.51277, 4.49243, 4.47191, 4.45134, 4.43079, 4.41046, 4.39004, 4.36905, 4.34696, 4.32358, 4.29898, 4.27327, 4.24689, 4.22071, 4.19547, 4.17131, 4.14782, 4.12463, 4.10158, 4.07851, 4.05522, 4.0317, 4.00756, 3.98268, 3.95716)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.89826, 2.90112, 2.90404, 2.90705, 2.91017, 2.91349, 2.91708, 2.92096, 2.92521, 2.92993, 2.93498, 2.94053, 2.94659, 2.95323, 2.96057, 2.96867, 2.97755, 2.98729, 2.99783, 3.00894, 3.02037, 3.03161, 3.04224, 3.05212, 3.06134, 3.07048, 3.08028, 3.0915, 3.1046, 3.11967, 3.13637, 3.1539, 3.17146, 3.18881, 3.20623, 3.22467, 3.24492, 3.26659, 3.28855, 3.30932, 3.32728, 3.34105, 3.35, 3.35471, 3.35701, 3.35964, 3.36553, 3.3779, 3.39783, 3.42603, 3.46235, 3.50571, 3.55365, 3.60248, 3.64789, 3.68626, 3.71587, 3.73708, 3.75169, 3.76171, 3.76878, 3.77386, 3.77732, 3.77902, 3.77882, 3.77662, 3.77247, 3.76656, 3.75908, 3.75017, 3.7401, 3.72893, 3.71678, 3.70378, 3.6901, 3.67568, 3.6607, 3.64543, 3.63014, 3.61495, 3.59972, 3.58433, 3.5685, 3.55195, 3.53444, 3.5158, 3.49617, 3.47611, 3.45628, 3.43714, 3.41881, 3.40113, 3.38382, 3.36664, 3.34945, 3.3322, 3.31475, 3.29688, 3.27847, 3.25968)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.9307, 2.93266, 2.93466, 2.93686, 2.93931, 2.94209, 2.94526, 2.94887, 2.95297, 2.95763, 2.9629, 2.96883, 2.97539, 2.98275, 2.99109, 3.00038, 3.01071, 3.0221, 3.03455, 3.04792, 3.06177, 3.07552, 3.08858, 3.10061, 3.11181, 3.12277, 3.1343, 3.14763, 3.16323, 3.18142, 3.20172, 3.22316, 3.24471, 3.26587, 3.28691, 3.30899, 3.33311, 3.35903, 3.38544, 3.41044, 3.43188, 3.44782, 3.45721, 3.46064, 3.46044, 3.46012, 3.46341, 3.47436, 3.49427, 3.52408, 3.56377, 3.61228, 3.66696, 3.72351, 3.77676, 3.82203, 3.85668, 3.88092, 3.89701, 3.90785, 3.91482, 3.91937, 3.92196, 3.92283, 3.9219, 3.91855, 3.91288, 3.90506, 3.89536, 3.88434, 3.87198, 3.85811, 3.8431, 3.82717, 3.81061, 3.79337, 3.77528, 3.75695, 3.73874, 3.72067, 3.70259, 3.68432, 3.66565, 3.64619, 3.62546, 3.6033, 3.57985, 3.55569, 3.53177, 3.50874, 3.48671, 3.46548, 3.44468, 3.42403, 3.40336, 3.38262, 3.36162, 3.33994, 3.31745, 3.29426)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.46981, 3.47372, 3.47772, 3.48186, 3.48627, 3.49097, 3.49603, 3.50161, 3.50774, 3.51438, 3.52163, 3.52949, 3.53814, 3.54769, 3.55822, 3.5698, 3.58239, 3.59615, 3.61096, 3.62665, 3.64266, 3.65829, 3.67303, 3.68662, 3.69926, 3.71175, 3.7251, 3.74049, 3.75855, 3.77937, 3.80233, 3.82634, 3.85036, 3.87397, 3.89769, 3.92265, 3.94995, 3.97894, 4.00814, 4.03525, 4.058, 4.07446, 4.08384, 4.08707, 4.08692, 4.08732, 4.09234, 4.10604, 4.12985, 4.16456, 4.20998, 4.2647, 4.32547, 4.38728, 4.44435, 4.49178, 4.52734, 4.55199, 4.56806, 4.57824, 4.58459, 4.58805, 4.58977, 4.58906, 4.58585, 4.58015, 4.57198, 4.56149, 4.54907, 4.5351, 4.51971, 4.50302, 4.48515, 4.46641, 4.44682, 4.42616, 4.40495, 4.38368, 4.36264, 4.34186, 4.32104, 4.29986, 4.27814, 4.25569, 4.23196, 4.20665, 4.18009, 4.15307, 4.1264, 4.10069, 4.07612, 4.05251, 4.02937, 4.0063, 3.98315, 3.95982, 3.93608, 3.91162, 3.88632, 3.86038)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.09812, 3.10292, 3.10775, 3.11264, 3.11762, 3.12276, 3.12814, 3.13385, 3.1399, 3.14639, 3.1532, 3.16037, 3.16801, 3.17616, 3.1849, 3.19435, 3.20441, 3.21504, 3.22648, 3.23877, 3.25191, 3.26547, 3.27903, 3.29222, 3.30489, 3.31721, 3.32954, 3.34262, 3.35729, 3.374, 3.39256, 3.41218, 3.43186, 3.45109, 3.47012, 3.48988, 3.51132, 3.53474, 3.559, 3.58251, 3.60334, 3.61944, 3.62929, 3.63273, 3.6313, 3.62793, 3.62616, 3.62919, 3.64, 3.65937, 3.68749, 3.72365, 3.76584, 3.81063, 3.85387, 3.89173, 3.92184, 3.94387, 3.95919, 3.96957, 3.9767, 3.98149, 3.98459, 3.98611, 3.98588, 3.98373, 3.9797, 3.97396, 3.96665, 3.95793, 3.94795, 3.93688, 3.92487, 3.912, 3.89835, 3.88399, 3.86889, 3.8534, 3.83797, 3.82281, 3.80771, 3.79253, 3.77706, 3.76104, 3.74391, 3.72527, 3.7052, 3.68429, 3.66345, 3.6433, 3.62404, 3.6055, 3.58735, 3.56935, 3.55131, 3.53315, 3.51464, 3.49539, 3.47518, 3.45412)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.6674, 2.66808, 2.66885, 2.66966, 2.67064, 2.67194, 2.67363, 2.67569, 2.67822, 2.68112, 2.6845, 2.68841, 2.69295, 2.69823, 2.70429, 2.71119, 2.71885, 2.72744, 2.73692, 2.74717, 2.75777, 2.76819, 2.778, 2.78701, 2.79538, 2.80367, 2.81273, 2.82341, 2.83624, 2.85132, 2.86821, 2.88602, 2.90385, 2.92137, 2.93904, 2.95778, 2.97841, 3.00045, 3.0226, 3.04314, 3.06015, 3.07201, 3.07804, 3.07892, 3.07682, 3.07489, 3.07638, 3.08478, 3.10115, 3.12618, 3.15972, 3.2005, 3.24597, 3.29227, 3.33501, 3.3706, 3.3974, 3.41592, 3.42797, 3.43556, 3.44033, 3.44322, 3.44447, 3.44403, 3.44177, 3.4376, 3.43156, 3.42387, 3.41475, 3.40432, 3.39276, 3.38032, 3.36709, 3.35312, 3.33845, 3.32325, 3.30759, 3.29182, 3.27618, 3.26073, 3.24543, 3.22999, 3.21421, 3.19775, 3.18028, 3.16159, 3.14192, 3.12184, 3.10205, 3.08308, 3.06507, 3.04783, 3.03101, 3.01437, 2.99772, 2.98092, 2.96374, 2.94596, 2.92745, 2.90838)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.62312, 3.63101, 3.63885, 3.64674, 3.6548, 3.66311, 3.67172, 3.68061, 3.6899, 3.69954, 3.70961, 3.72016, 3.73129, 3.743, 3.75536, 3.76844, 3.78237, 3.79717, 3.81289, 3.82948, 3.8468, 3.8644, 3.88175, 3.89847, 3.9145, 3.93021, 3.94646, 3.96434, 3.98447, 4.00698, 4.03141, 4.05674, 4.08194, 4.10664, 4.13132, 4.15717, 4.18514, 4.21473, 4.24431, 4.27201, 4.29546, 4.31271, 4.32307, 4.32739, 4.32803, 4.32864, 4.33294, 4.3451, 4.36674, 4.39858, 4.44057, 4.49128, 4.54781, 4.6057, 4.65961, 4.70502, 4.73971, 4.7641, 4.78052, 4.79134, 4.79875, 4.80411, 4.80704, 4.8076, 4.806, 4.80227, 4.79644, 4.78849, 4.77858, 4.76699, 4.7539, 4.73989, 4.72508, 4.70914, 4.69195, 4.67406, 4.65608, 4.63775, 4.61943, 4.60144, 4.58349, 4.56541, 4.54666, 4.52697, 4.50602, 4.48377, 4.46047, 4.43653, 4.41259, 4.38942, 4.36744, 4.34641, 4.32573, 4.30489, 4.28372, 4.26231, 4.24044, 4.2178, 4.19408, 4.16972)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.6676, 2.66901, 2.6705, 2.67217, 2.67412, 2.67643, 2.67917, 2.68237, 2.68613, 2.6904, 2.6953, 2.70084, 2.70706, 2.71408, 2.72199, 2.73087, 2.74075, 2.75172, 2.76377, 2.77672, 2.79024, 2.8038, 2.8168, 2.82894, 2.84032, 2.85154, 2.86355, 2.87736, 2.89368, 2.9126, 2.93364, 2.95582, 2.97806, 2.99984, 3.02162, 3.04442, 3.06929, 3.09561, 3.12191, 3.14615, 3.16599, 3.17944, 3.18571, 3.18567, 3.1819, 3.17814, 3.17819, 3.18615, 3.20323, 3.23019, 3.26681, 3.31185, 3.36258, 3.41478, 3.46352, 3.50453, 3.53558, 3.55691, 3.57064, 3.57912, 3.58431, 3.58753, 3.58875, 3.58797, 3.58513, 3.58019, 3.57322, 3.56437, 3.55384, 3.54189, 3.52875, 3.51465, 3.49974, 3.48407, 3.46762, 3.4505, 3.43307, 3.41552, 3.39823, 3.38122, 3.36441, 3.34748, 3.33014, 3.31199, 3.29266, 3.27199, 3.25018, 3.22789, 3.20592, 3.18492, 3.16503, 3.14597, 3.12734, 3.10886, 3.09031, 3.07147, 3.05208, 3.03188, 3.01087, 2.98917)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.88374, 2.88575, 2.8879, 2.89029, 2.89302, 2.89618, 2.89988, 2.90418, 2.90917, 2.91488, 2.92123, 2.92841, 2.93654, 2.94579, 2.95629, 2.96811, 2.98124, 2.99585, 3.01186, 3.02906, 3.04686, 3.06443, 3.08098, 3.09612, 3.11006, 3.12365, 3.13841, 3.15574, 3.17653, 3.2011, 3.22879, 3.25815, 3.28753, 3.31593, 3.3437, 3.37208, 3.40244, 3.43411, 3.46519, 3.49277, 3.51356, 3.52486, 3.52558, 3.51704, 3.50292, 3.48822, 3.4778, 3.47675, 3.48651, 3.50785, 3.54045, 3.58299, 3.63252, 3.68449, 3.7336, 3.77525, 3.80709, 3.82943, 3.84396, 3.85345, 3.85966, 3.86387, 3.86606, 3.86661, 3.86521, 3.86167, 3.85604, 3.84859, 3.83973, 3.82967, 3.81837, 3.8061, 3.79314, 3.7796, 3.76539, 3.75047, 3.73514, 3.71991, 3.70487, 3.69032, 3.67615, 3.66199, 3.64734, 3.6318, 3.61468, 3.59562, 3.57499, 3.55363, 3.53258, 3.51258, 3.49386, 3.47617, 3.45888, 3.4416, 3.42387, 3.40547, 3.38601, 3.36518, 3.34297, 3.31949)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.79263, 2.79402, 2.79551, 2.79717, 2.79909, 2.80135, 2.80405, 2.8072, 2.81082, 2.81511, 2.8199, 2.82535, 2.83158, 2.83871, 2.84687, 2.8561, 2.86639, 2.87791, 2.89055, 2.90419, 2.91842, 2.9325, 2.94577, 2.95789, 2.96902, 2.97996, 2.99198, 3.00626, 3.02362, 3.0442, 3.06736, 3.09185, 3.1163, 3.13996, 3.16318, 3.18711, 3.21269, 3.23932, 3.26511, 3.2876, 3.30401, 3.31203, 3.31074, 3.30125, 3.28668, 3.2715, 3.26008, 3.25687, 3.26306, 3.27924, 3.30516, 3.33934, 3.37909, 3.42059, 3.45959, 3.4926, 3.51778, 3.53536, 3.54693, 3.5543, 3.55911, 3.5622, 3.56379, 3.56394, 3.56246, 3.55929, 3.55447, 3.54817, 3.54068, 3.53216, 3.52281, 3.51287, 3.50233, 3.49129, 3.47973, 3.46771, 3.45537, 3.44308, 3.43121, 3.4198, 3.40872, 3.39768, 3.38631, 3.37417, 3.36072, 3.34564, 3.32909, 3.31183, 3.29485, 3.27887, 3.26409, 3.2502, 3.23662, 3.22297, 3.20893, 3.19431, 3.17875, 3.16188, 3.1436, 3.12417)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.74019, 2.74104, 2.74208, 2.74336, 2.74496, 2.74697, 2.74955, 2.75276, 2.75667, 2.76128, 2.76663, 2.77277, 2.77988, 2.78819, 2.79785, 2.80881, 2.82116, 2.83493, 2.85019, 2.86675, 2.88403, 2.90111, 2.91709, 2.93156, 2.94486, 2.95795, 2.97245, 2.9899, 3.0111, 3.03628, 3.06464, 3.09458, 3.12443, 3.15328, 3.18144, 3.21026, 3.241, 3.27267, 3.30315, 3.32938, 3.34803, 3.35635, 3.35338, 3.34073, 3.32236, 3.30359, 3.28953, 3.28529, 3.29229, 3.31113, 3.34137, 3.38132, 3.42779, 3.4763, 3.52189, 3.56051, 3.59015, 3.61113, 3.62535, 3.63491, 3.64153, 3.64612, 3.64908, 3.65036, 3.64982, 3.64733, 3.64292, 3.63685, 3.62938, 3.62072, 3.61116, 3.60084, 3.58991, 3.57844, 3.56625, 3.55355, 3.54043, 3.52739, 3.51482, 3.50281, 3.49117, 3.47943, 3.46721, 3.45399, 3.43921, 3.42254, 3.40422, 3.38506, 3.3662, 3.34849, 3.33216, 3.31681, 3.30181, 3.28664, 3.27097, 3.25446, 3.23681, 3.21748, 3.19647, 3.1742)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.0035, 3.00693, 3.01034, 3.01383, 3.01746, 3.02126, 3.02523, 3.02946, 3.0339, 3.0387, 3.04373, 3.04901, 3.05462, 3.0606, 3.06701, 3.07388, 3.08118, 3.08905, 3.09742, 3.10628, 3.11559, 3.12507, 3.13443, 3.14347, 3.15219, 3.16076, 3.16963, 3.17923, 3.18983, 3.20157, 3.21419, 3.22722, 3.24023, 3.25311, 3.26613, 3.27984, 3.29496, 3.31106, 3.32756, 3.34338, 3.35741, 3.3687, 3.37681, 3.38208, 3.38567, 3.38938, 3.39525, 3.40564, 3.42155, 3.44362, 3.47188, 3.50557, 3.54284, 3.58067, 3.61553, 3.64437, 3.66568, 3.67973, 3.688, 3.69225, 3.69373, 3.69339, 3.69153, 3.68823, 3.68331, 3.6767, 3.66841, 3.65854, 3.64733, 3.63498, 3.6216, 3.60739, 3.59239, 3.57675, 3.56051, 3.54377, 3.52667, 3.50951, 3.49241, 3.47545, 3.45855, 3.44156, 3.42426, 3.40654, 3.38818, 3.36908, 3.34935, 3.32937, 3.30959, 3.29039, 3.27185, 3.25385, 3.23615, 3.2186, 3.20121, 3.18385, 3.16651, 3.14903, 3.13123, 3.1132)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.78816, 2.78946, 2.79088, 2.79238, 2.794, 2.79581, 2.79781, 2.80003, 2.80251, 2.8052, 2.80813, 2.81122, 2.81462, 2.81826, 2.82214, 2.82631, 2.83078, 2.83556, 2.84066, 2.84606, 2.85164, 2.85721, 2.86276, 2.86831, 2.87382, 2.87933, 2.88486, 2.89035, 2.8959, 2.90147, 2.90708, 2.91285, 2.91894, 2.92564, 2.93333, 2.94229, 2.95267, 2.96464, 2.97801, 2.99246, 3.00777, 3.02385, 3.04068, 3.05843, 3.0775, 3.0985, 3.12214, 3.14929, 3.18115, 3.21795, 3.25898, 3.3024, 3.345, 3.38317, 3.41406, 3.43652, 3.45115, 3.4596, 3.46375, 3.46499, 3.4641, 3.46135, 3.4569, 3.45058, 3.44228, 3.43199, 3.41982, 3.40599, 3.39061, 3.37381, 3.35575, 3.33653, 3.31627, 3.29515, 3.27323, 3.25075, 3.22778, 3.20451, 3.18092, 3.15701, 3.1328, 3.10826, 3.08333, 3.058, 3.03236, 3.00649, 2.98064, 2.95502, 2.92975, 2.90491, 2.88048, 2.85646, 2.83293, 2.81004, 2.78787, 2.76645, 2.7458, 2.72582, 2.70645, 2.68771)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.02768, 3.03286, 3.03808, 3.04335, 3.04876, 3.05436, 3.06027, 3.06656, 3.07319, 3.08018, 3.08759, 3.09542, 3.10375, 3.11273, 3.12244, 3.13287, 3.14401, 3.15589, 3.16877, 3.18258, 3.19715, 3.21204, 3.22673, 3.24083, 3.25427, 3.26738, 3.28095, 3.29582, 3.31272, 3.33204, 3.35349, 3.37623, 3.3992, 3.42165, 3.44356, 3.4659, 3.48959, 3.51435, 3.53904, 3.56187, 3.5806, 3.59309, 3.59791, 3.59504, 3.58624, 3.57495, 3.56565, 3.56132, 3.56413, 3.57509, 3.59431, 3.62114, 3.65392, 3.69003, 3.72606, 3.75847, 3.78399, 3.80266, 3.8156, 3.82433, 3.83022, 3.83413, 3.83651, 3.83758, 3.83738, 3.83582, 3.83276, 3.82827, 3.82256, 3.8158, 3.8082, 3.79993, 3.79112, 3.78185, 3.77217, 3.76206, 3.75162, 3.74104, 3.7306, 3.72056, 3.71098, 3.70165, 3.69224, 3.68246, 3.67194, 3.66028, 3.64725, 3.63314, 3.61861, 3.60446, 3.59119, 3.57889, 3.56716, 3.55564, 3.544, 3.53205, 3.51955, 3.5062, 3.49175, 3.47613)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.06642, 2.06583, 2.06518, 2.06465, 2.06417, 2.06373, 2.0634, 2.06314, 2.06301, 2.06317, 2.06347, 2.06387, 2.06434, 2.06493, 2.06572, 2.06673, 2.06794, 2.06937, 2.07092, 2.07277, 2.07489, 2.07718, 2.07952, 2.08184, 2.08416, 2.08646, 2.08871, 2.09084, 2.09289, 2.09478, 2.09661, 2.09849, 2.10066, 2.10347, 2.10722, 2.11224, 2.11908, 2.12781, 2.13855, 2.15138, 2.16619, 2.18286, 2.20128, 2.22135, 2.24308, 2.26663, 2.29241, 2.32141, 2.35402, 2.39101, 2.43253, 2.47795, 2.52536, 2.5717, 2.61349, 2.64805, 2.67435, 2.69332, 2.70675, 2.71638, 2.72355, 2.72883, 2.73251, 2.73456, 2.73488, 2.73335, 2.72997, 2.72481, 2.71797, 2.70959, 2.69981, 2.68876, 2.67659, 2.66335, 2.64921, 2.63422, 2.61852, 2.60227, 2.58562, 2.5686, 2.55113, 2.53326, 2.5149, 2.49606, 2.47682, 2.45726, 2.43748, 2.41761, 2.3978, 2.37818, 2.35881, 2.33972, 2.32094, 2.30254, 2.28461, 2.26731, 2.25074, 2.23491, 2.21983, 2.2054)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.60033, 2.60095, 2.60167, 2.60247, 2.6034, 2.60448, 2.60572, 2.60715, 2.60881, 2.61076, 2.61291, 2.61524, 2.6178, 2.6206, 2.62364, 2.62693, 2.63044, 2.63425, 2.63835, 2.64272, 2.64736, 2.65214, 2.657, 2.66189, 2.66674, 2.67156, 2.67636, 2.68107, 2.68575, 2.69039, 2.69502, 2.69966, 2.70443, 2.70954, 2.7153, 2.72201, 2.73022, 2.73999, 2.75126, 2.764, 2.77808, 2.7933, 2.80949, 2.82657, 2.84466, 2.8641, 2.88535, 2.90952, 2.9372, 2.9692, 3.00597, 3.047, 3.09055, 3.13361, 3.17252, 3.2041, 3.22677, 3.24095, 3.24878, 3.25206, 3.25235, 3.25048, 3.24681, 3.24137, 3.23402, 3.22465, 3.21323, 3.19989, 3.18485, 3.16826, 3.15025, 3.13096, 3.11046, 3.08894, 3.06658, 3.04341, 3.01957, 2.99533, 2.97075, 2.94584, 2.92067, 2.89517, 2.8693, 2.84303, 2.81635, 2.78936, 2.76224, 2.73515, 2.70825, 2.68169, 2.65551, 2.62978, 2.60453, 2.5798, 2.55569, 2.53232, 2.50979, 2.48807, 2.46712, 2.44686)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.24077, 2.24064, 2.24046, 2.24035, 2.24029, 2.24031, 2.24045, 2.24075, 2.2412, 2.24187, 2.24274, 2.24381, 2.24508, 2.24656, 2.24824, 2.25014, 2.2523, 2.25474, 2.25752, 2.26059, 2.2639, 2.26741, 2.27096, 2.2745, 2.27804, 2.28149, 2.28501, 2.28848, 2.29211, 2.29587, 2.29977, 2.3038, 2.30799, 2.31249, 2.31766, 2.32392, 2.33163, 2.34133, 2.35283, 2.36604, 2.38071, 2.3966, 2.41346, 2.43119, 2.44994, 2.47011, 2.49224, 2.51708, 2.54601, 2.57958, 2.61839, 2.66216, 2.70935, 2.75705, 2.80156, 2.83955, 2.86915, 2.8905, 2.90518, 2.91508, 2.92187, 2.92634, 2.92908, 2.93014, 2.92938, 2.92673, 2.92215, 2.9157, 2.90755, 2.89783, 2.88671, 2.87434, 2.86082, 2.84623, 2.83066, 2.81431, 2.79729, 2.77977, 2.76189, 2.74368, 2.72513, 2.70628, 2.68706, 2.66739, 2.6473, 2.62676, 2.60581, 2.58472, 2.56375, 2.54305, 2.52269, 2.50266, 2.48295, 2.46358, 2.44466, 2.42634, 2.40867, 2.39164, 2.3752, 2.3593)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.90188, 2.90403, 2.90624, 2.90848, 2.91075, 2.91307, 2.91548, 2.91807, 2.92082, 2.92381, 2.92696, 2.93029, 2.93382, 2.93757, 2.94155, 2.9458, 2.95033, 2.9552, 2.96037, 2.96577, 2.9714, 2.97715, 2.98282, 2.9883, 2.99358, 2.99863, 3.00361, 3.00856, 3.01365, 3.01893, 3.02439, 3.02994, 3.0356, 3.0416, 3.04827, 3.05612, 3.0658, 3.07719, 3.09017, 3.10446, 3.11975, 3.13574, 3.1522, 3.16912, 3.18689, 3.20619, 3.22797, 3.25371, 3.28409, 3.31992, 3.36141, 3.40785, 3.45722, 3.50614, 3.55068, 3.5876, 3.61553, 3.63533, 3.64887, 3.65817, 3.66469, 3.66928, 3.67207, 3.67307, 3.67216, 3.66922, 3.6642, 3.65718, 3.64833, 3.63775, 3.6256, 3.61199, 3.59693, 3.58064, 3.56322, 3.5448, 3.52544, 3.50543, 3.48487, 3.46386, 3.44234, 3.42027, 3.39759, 3.37425, 3.35019, 3.32553, 3.30042, 3.27509, 3.24981, 3.22475, 3.19998, 3.17552, 3.15139, 3.12767, 3.10446, 3.08183, 3.05976, 3.03824, 3.01719, 2.99663)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.30817, 2.30655, 2.30498, 2.30344, 2.30198, 2.30067, 2.29955, 2.29861, 2.29793, 2.29748, 2.29728, 2.29731, 2.29761, 2.29821, 2.29919, 2.3005, 2.30214, 2.30416, 2.30658, 2.30939, 2.31246, 2.31561, 2.3187, 2.32168, 2.32463, 2.32763, 2.33081, 2.33434, 2.33841, 2.34303, 2.34808, 2.35334, 2.35875, 2.36458, 2.37138, 2.37963, 2.38966, 2.40148, 2.41497, 2.42973, 2.44533, 2.46133, 2.47746, 2.49385, 2.51103, 2.52976, 2.55099, 2.57573, 2.60486, 2.63926, 2.67948, 2.72483, 2.77326, 2.82118, 2.86454, 2.9003, 2.92752, 2.94712, 2.96099, 2.97079, 2.97769, 2.98247, 2.98539, 2.9864, 2.98535, 2.98216, 2.9769, 2.96968, 2.96067, 2.95006, 2.93805, 2.92484, 2.91055, 2.89523, 2.87902, 2.86206, 2.84454, 2.82669, 2.80863, 2.79036, 2.77187, 2.75312, 2.7341, 2.71471, 2.69486, 2.67462, 2.65416, 2.63377, 2.61375, 2.59426, 2.57528, 2.55677, 2.53869, 2.5211, 2.50412, 2.48775, 2.47195, 2.45662, 2.4417, 2.42723)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.40439, 2.40103, 2.3978, 2.39473, 2.39185, 2.38919, 2.38685, 2.38486, 2.38324, 2.38199, 2.3811, 2.3806, 2.38055, 2.38104, 2.3821, 2.38371, 2.38583, 2.38847, 2.39175, 2.39558, 2.39978, 2.40402, 2.40804, 2.41179, 2.41534, 2.41883, 2.42255, 2.42687, 2.43215, 2.43851, 2.44567, 2.45309, 2.46056, 2.46837, 2.47736, 2.48826, 2.50143, 2.51684, 2.53412, 2.55253, 2.57115, 2.58906, 2.60587, 2.62187, 2.63818, 2.65641, 2.67825, 2.70522, 2.73843, 2.7788, 2.8267, 2.88101, 2.93884, 2.99554, 3.04616, 3.08755, 3.11899, 3.14215, 3.1594, 3.17266, 3.18321, 3.19173, 3.19833, 3.20289, 3.20521, 3.20525, 3.20298, 3.19853, 3.19204, 3.1837, 3.17368, 3.16205, 3.14897, 3.1345, 3.11875, 3.10189, 3.08411, 3.06564, 3.04666, 3.0272, 3.00723, 2.98673, 2.96565, 2.94381, 2.92099, 2.89719, 2.87274, 2.84812, 2.82384, 2.80012, 2.77692, 2.75416, 2.73179, 2.70992, 2.68864, 2.66795, 2.64772, 2.62778, 2.60808, 2.5888)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.86543, 3.87217, 3.87899, 3.88595, 3.89309, 3.90047, 3.90805, 3.91575, 3.92366, 3.93195, 3.94064, 3.94957, 3.9587, 3.96805, 3.97773, 3.98786, 3.99844, 4.00936, 4.02065, 4.03238, 4.04441, 4.05661, 4.06886, 4.081, 4.09296, 4.10488, 4.1168, 4.12904, 4.1417, 4.15476, 4.16811, 4.18159, 4.195, 4.20827, 4.22183, 4.23607, 4.25172, 4.2685, 4.28633, 4.30451, 4.32225, 4.33905, 4.35464, 4.36909, 4.38306, 4.39755, 4.41426, 4.43485, 4.46015, 4.49106, 4.52807, 4.57026, 4.61538, 4.66003, 4.70025, 4.73279, 4.75613, 4.7707, 4.77813, 4.78081, 4.78058, 4.7779, 4.77333, 4.76669, 4.75798, 4.7472, 4.73417, 4.71906, 4.70219, 4.68367, 4.66366, 4.64241, 4.61988, 4.5961, 4.57132, 4.54599, 4.52021, 4.49376, 4.46722, 4.44044, 4.41347, 4.38621, 4.35852, 4.33036, 4.30158, 4.27217, 4.24226, 4.21219, 4.1824, 4.15317, 4.12448, 4.09623, 4.06837, 4.04096, 4.01399, 3.98755, 3.96163, 3.93614, 3.91103, 3.88612)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.66778, 3.67131, 3.67494, 3.67866, 3.68262, 3.68689, 3.6917, 3.69716, 3.7032, 3.70984, 3.71726, 3.72547, 3.73466, 3.74486, 3.75628, 3.76891, 3.78271, 3.79762, 3.81365, 3.83059, 3.84773, 3.86417, 3.8793, 3.89313, 3.90627, 3.91957, 3.93393, 3.9503, 3.96967, 3.99224, 4.0173, 4.04334, 4.0691, 4.09479, 4.12182, 4.1517, 4.18516, 4.22198, 4.26084, 4.30027, 4.33792, 4.37153, 4.40013, 4.4247, 4.44833, 4.47492, 4.50794, 4.55026, 4.60366, 4.66969, 4.74887, 4.83984, 4.93747, 5.03277, 5.11724, 5.1854, 5.23697, 5.27241, 5.29821, 5.31631, 5.32999, 5.34049, 5.34857, 5.35279, 5.35347, 5.3503, 5.34562, 5.33675, 5.3247, 5.30865, 5.29139, 5.27323, 5.25269, 5.22966, 5.20456, 5.17801, 5.15068, 5.12181, 5.09311, 5.06304, 5.03194, 5.00015, 4.96762, 4.93454, 4.89922, 4.86201, 4.82403, 4.78551, 4.74722, 4.70967, 4.67364, 4.63864, 4.60427, 4.5701, 4.53654, 4.50319, 4.4704, 4.43776, 4.40496, 4.37236)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.24932, 3.25538, 3.26152, 3.26786, 3.27439, 3.28116, 3.28824, 3.29561, 3.30333, 3.31161, 3.32026, 3.32935, 3.33894, 3.34909, 3.3599, 3.37146, 3.38372, 3.3968, 3.41069, 3.42554, 3.44114, 3.45697, 3.4726, 3.48774, 3.50217, 3.51623, 3.53044, 3.54569, 3.56269, 3.58143, 3.6016, 3.62244, 3.64321, 3.66366, 3.6842, 3.70608, 3.73041, 3.75648, 3.78363, 3.81015, 3.83429, 3.85457, 3.87018, 3.88147, 3.89025, 3.89914, 3.9116, 3.93076, 3.95824, 3.99489, 4.04115, 4.09553, 4.15548, 4.21671, 4.27389, 4.32257, 4.35974, 4.3848, 4.40194, 4.41304, 4.4212, 4.42665, 4.42975, 4.43109, 4.43003, 4.42625, 4.42019, 4.41197, 4.40183, 4.39028, 4.3772, 4.36255, 4.34649, 4.32906, 4.31105, 4.29159, 4.27118, 4.25072, 4.23038, 4.20996, 4.18913, 4.16835, 4.14694, 4.12455, 4.10072, 4.07527, 4.04871, 4.02162, 3.99473, 3.96851, 3.94297, 3.91813, 3.89359, 3.86914, 3.84505, 3.82099, 3.7966, 3.77185, 3.74664, 3.72105)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.32289, 3.32988, 3.33671, 3.34351, 3.35041, 3.35752, 3.36478, 3.37218, 3.37992, 3.38802, 3.39639, 3.405, 3.41396, 3.42346, 3.4336, 3.44424, 3.4552, 3.46674, 3.47931, 3.49255, 3.50631, 3.52039, 3.53451, 3.54839, 3.56181, 3.57481, 3.58768, 3.60141, 3.61664, 3.63352, 3.65187, 3.67102, 3.69025, 3.70922, 3.72814, 3.74779, 3.76919, 3.79253, 3.81681, 3.84067, 3.86255, 3.88085, 3.89436, 3.90296, 3.90789, 3.91149, 3.91676, 3.92679, 3.94425, 3.96963, 4.00317, 4.04437, 4.09133, 4.14051, 4.1875, 4.22847, 4.26129, 4.28582, 4.30327, 4.31539, 4.32391, 4.33007, 4.33461, 4.33767, 4.33869, 4.33761, 4.33448, 4.32962, 4.32324, 4.31528, 4.30588, 4.2954, 4.28411, 4.27209, 4.25902, 4.24516, 4.23058, 4.21576, 4.20114, 4.18673, 4.1721, 4.15727, 4.14239, 4.12713, 4.11084, 4.09316, 4.0742, 4.05465, 4.03541, 4.01694, 3.99917, 3.98182, 3.96473, 3.94794, 3.93132, 3.91463, 3.89764, 3.88028, 3.86239, 3.84393)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.63488, 2.63596, 2.63717, 2.63858, 2.64022, 2.64213, 2.64446, 2.64736, 2.65078, 2.65477, 2.6594, 2.66459, 2.67057, 2.67746, 2.68539, 2.69441, 2.70446, 2.7157, 2.72822, 2.74188, 2.75635, 2.77086, 2.78464, 2.79728, 2.8088, 2.81971, 2.83108, 2.84427, 2.86035, 2.87983, 2.90236, 2.9267, 2.9513, 2.97515, 2.99831, 3.02171, 3.04632, 3.07241, 3.09845, 3.12235, 3.14132, 3.15266, 3.15472, 3.14771, 3.13401, 3.11771, 3.10342, 3.09487, 3.09562, 3.10625, 3.12682, 3.15628, 3.19244, 3.23178, 3.27016, 3.30384, 3.33047, 3.34971, 3.36272, 3.37119, 3.3767, 3.38006, 3.38206, 3.38268, 3.38174, 3.37916, 3.37493, 3.36916, 3.36216, 3.35415, 3.34528, 3.33571, 3.32558, 3.31499, 3.30395, 3.29235, 3.2803, 3.2681, 3.25627, 3.24502, 3.23411, 3.22337, 3.21253, 3.20117, 3.18866, 3.17442, 3.15845, 3.14138, 3.12433, 3.1082, 3.09329, 3.0794, 3.06598, 3.05257, 3.03894, 3.02488, 3.00998, 2.99377, 2.97599, 2.95689)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.23024, 3.24007, 3.24974, 3.25922, 3.26856, 3.27784, 3.28712, 3.2964, 3.30564, 3.31485, 3.32401, 3.33323, 3.34245, 3.35166, 3.36085, 3.37004, 3.37931, 3.38867, 3.39819, 3.40774, 3.41735, 3.42699, 3.43657, 3.44603, 3.4554, 3.46472, 3.4739, 3.48295, 3.49194, 3.50086, 3.5097, 3.51847, 3.52726, 3.53619, 3.54547, 3.55547, 3.56644, 3.57841, 3.59148, 3.60549, 3.62036, 3.63596, 3.65214, 3.66887, 3.68624, 3.70458, 3.72435, 3.74645, 3.77132, 3.79946, 3.83115, 3.86597, 3.90264, 3.93902, 3.97254, 4.00096, 4.02317, 4.03942, 4.05103, 4.05938, 4.06545, 4.06994, 4.073, 4.07477, 4.07506, 4.07382, 4.07108, 4.06685, 4.0612, 4.05435, 4.04653, 4.03784, 4.02828, 4.0179, 4.0068, 3.99507, 3.98293, 3.97049, 3.95784, 3.94499, 3.93191, 3.91852, 3.90482, 3.89085, 3.8766, 3.8621, 3.84742, 3.83262, 3.81789, 3.80334, 3.78898, 3.77483, 3.76084, 3.74703, 3.73346, 3.72015, 3.70723, 3.69467, 3.68233, 3.67024)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.19217, 2.19194, 2.19171, 2.19145, 2.19119, 2.19103, 2.19104, 2.1912, 2.19145, 2.19189, 2.19249, 2.19321, 2.1941, 2.19519, 2.19645, 2.19783, 2.1994, 2.20129, 2.20351, 2.20599, 2.20865, 2.21141, 2.21423, 2.21712, 2.22003, 2.22288, 2.22567, 2.22831, 2.23082, 2.23325, 2.23571, 2.23826, 2.24109, 2.24451, 2.24892, 2.25478, 2.26264, 2.27259, 2.28467, 2.29884, 2.31506, 2.33321, 2.35317, 2.37487, 2.39831, 2.42368, 2.45147, 2.48271, 2.51801, 2.55812, 2.60317, 2.6524, 2.70369, 2.75371, 2.79878, 2.83598, 2.86432, 2.88472, 2.89911, 2.90935, 2.91687, 2.92257, 2.92655, 2.92871, 2.92894, 2.92716, 2.92336, 2.91766, 2.91022, 2.90114, 2.89056, 2.87859, 2.86535, 2.85098, 2.8357, 2.81951, 2.80262, 2.78518, 2.76722, 2.74885, 2.73009, 2.71089, 2.69116, 2.67094, 2.65025, 2.62919, 2.60792, 2.5866, 2.56538, 2.54438, 2.52357, 2.50304, 2.4829, 2.46319, 2.44407, 2.4256, 2.40785, 2.39088, 2.37466, 2.35912)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.69596, 2.69735, 2.69875, 2.70025, 2.70182, 2.70353, 2.70536, 2.7073, 2.70951, 2.71207, 2.71481, 2.71774, 2.7208, 2.72404, 2.72752, 2.73126, 2.73533, 2.73966, 2.74422, 2.749, 2.75402, 2.75924, 2.76455, 2.76985, 2.77509, 2.78024, 2.78534, 2.79039, 2.79547, 2.80055, 2.80558, 2.81063, 2.81583, 2.82137, 2.82766, 2.835, 2.844, 2.85462, 2.86694, 2.88087, 2.89624, 2.91287, 2.93061, 2.94937, 2.96923, 2.99042, 3.01366, 3.04, 3.07032, 3.1053, 3.14538, 3.19011, 3.23766, 3.28488, 3.3278, 3.36284, 3.38831, 3.40479, 3.41427, 3.41873, 3.41989, 3.41904, 3.41637, 3.41165, 3.4048, 3.39588, 3.38488, 3.3719, 3.35707, 3.34053, 3.32245, 3.30298, 3.28228, 3.26046, 3.23769, 3.21414, 3.18989, 3.16524, 3.14018, 3.11483, 3.08914, 3.06307, 3.03664, 3.00976, 2.98246, 2.95483, 2.92702, 2.89921, 2.87158, 2.84432, 2.81748, 2.79105, 2.76506, 2.73962, 2.71482, 2.69079, 2.66755, 2.64519, 2.62356, 2.60263)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.49473, 2.49564, 2.49655, 2.49751, 2.49853, 2.49967, 2.50098, 2.50236, 2.50387, 2.50561, 2.50748, 2.5095, 2.51168, 2.51399, 2.5164, 2.51898, 2.52181, 2.52489, 2.52813, 2.5316, 2.53526, 2.53902, 2.54285, 2.54672, 2.55053, 2.55429, 2.55807, 2.56179, 2.56557, 2.56933, 2.57305, 2.57677, 2.5806, 2.5847, 2.58939, 2.59488, 2.60166, 2.6097, 2.61903, 2.62958, 2.64119, 2.65371, 2.66699, 2.68101, 2.69587, 2.71189, 2.72959, 2.74998, 2.77357, 2.80095, 2.83233, 2.86716, 2.90379, 2.93963, 2.97171, 2.99765, 3.01647, 3.02871, 3.03605, 3.03993, 3.04148, 3.04146, 3.03995, 3.03697, 3.03242, 3.02626, 3.01851, 3.00922, 2.99845, 2.98639, 2.97315, 2.95882, 2.94352, 2.92733, 2.91037, 2.89273, 2.87452, 2.85596, 2.8371, 2.81797, 2.79853, 2.77874, 2.75862, 2.73813, 2.71728, 2.69612, 2.67475, 2.65337, 2.63211, 2.61107, 2.59034, 2.56992, 2.54984, 2.5301, 2.5108, 2.49207, 2.47391, 2.4564, 2.4395, 2.42313)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.78651, 2.78878, 2.79103, 2.7933, 2.79563, 2.79802, 2.80049, 2.80311, 2.80582, 2.80872, 2.81181, 2.81499, 2.81834, 2.82185, 2.82551, 2.82938, 2.83346, 2.83774, 2.84226, 2.84704, 2.85199, 2.857, 2.86201, 2.86694, 2.87179, 2.87655, 2.88129, 2.88592, 2.89062, 2.89536, 2.90015, 2.905, 2.90995, 2.91522, 2.92114, 2.92812, 2.93662, 2.94669, 2.95829, 2.97124, 2.98536, 3.00038, 3.01613, 3.03264, 3.0501, 3.06893, 3.0899, 3.11417, 3.14247, 3.17544, 3.21331, 3.25545, 3.29998, 3.34382, 3.38349, 3.41621, 3.44083, 3.45806, 3.46969, 3.47751, 3.48281, 3.48628, 3.4881, 3.48828, 3.4867, 3.48324, 3.47787, 3.47064, 3.46173, 3.45125, 3.4393, 3.42598, 3.4114, 3.39569, 3.37892, 3.36117, 3.34265, 3.3235, 3.30391, 3.28381, 3.26323, 3.24213, 3.22049, 3.19829, 3.17551, 3.15219, 3.12848, 3.10459, 3.08076, 3.05715, 3.03382, 3.01077, 2.98801, 2.96558, 2.94358, 2.92211, 2.90129, 2.88106, 2.86135, 2.84216)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.77778, 2.78078, 2.7838, 2.78679, 2.78979, 2.79282, 2.7959, 2.7991, 2.80242, 2.8059, 2.80943, 2.81309, 2.81689, 2.82079, 2.8248, 2.829, 2.8334, 2.83802, 2.84284, 2.8478, 2.85292, 2.85812, 2.86332, 2.86846, 2.87349, 2.87836, 2.88313, 2.88787, 2.89253, 2.8972, 2.90191, 2.90661, 2.9114, 2.91649, 2.92213, 2.92872, 2.93678, 2.94623, 2.9571, 2.96927, 2.98252, 2.99662, 3.01143, 3.02693, 3.0433, 3.06095, 3.08052, 3.10315, 3.12938, 3.15995, 3.19504, 3.23405, 3.27523, 3.31584, 3.35267, 3.38314, 3.40616, 3.42239, 3.43344, 3.4409, 3.446, 3.44941, 3.45128, 3.45163, 3.45033, 3.44732, 3.44253, 3.43605, 3.42802, 3.41851, 3.40765, 3.39552, 3.38228, 3.36799, 3.35273, 3.33661, 3.31975, 3.30238, 3.28456, 3.26637, 3.24773, 3.22865, 3.20907, 3.18897, 3.16838, 3.14733, 3.12595, 3.10443, 3.08295, 3.06165, 3.04061, 3.01981, 2.99927, 2.97911, 2.95938, 2.94017, 2.92146, 2.90324, 2.88553, 2.86827)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.60265, 2.60327, 2.6039, 2.60448, 2.60511, 2.60584, 2.60667, 2.60758, 2.6087, 2.61, 2.61148, 2.61312, 2.61489, 2.61681, 2.61892, 2.62123, 2.62382, 2.62673, 2.62989, 2.63329, 2.63687, 2.64051, 2.64416, 2.64775, 2.65122, 2.65471, 2.65816, 2.66169, 2.66534, 2.66914, 2.67309, 2.67716, 2.68144, 2.68615, 2.69162, 2.69826, 2.7066, 2.71673, 2.72862, 2.74206, 2.75686, 2.7728, 2.78973, 2.80764, 2.82678, 2.84752, 2.87058, 2.8972, 2.92798, 2.96365, 3.00451, 3.04996, 3.0981, 3.1458, 3.18933, 3.22559, 3.25316, 3.27262, 3.2858, 3.29461, 3.30052, 3.30456, 3.30686, 3.30745, 3.30617, 3.30291, 3.29771, 3.29065, 3.28187, 3.27156, 3.25983, 3.24676, 3.2325, 3.21729, 3.20115, 3.18416, 3.16655, 3.14842, 3.1299, 3.11107, 3.09191, 3.07238, 3.05243, 3.03203, 3.0112, 2.98998, 2.96847, 2.94688, 2.92545, 2.9043, 2.88349, 2.86303, 2.84294, 2.82324, 2.804, 2.78534, 2.76731, 2.74997, 2.73318, 2.71695)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.62326, 2.62422, 2.62517, 2.6261, 2.62708, 2.62814, 2.62931, 2.63069, 2.63226, 2.63397, 2.63586, 2.63796, 2.64028, 2.64279, 2.64549, 2.64842, 2.65156, 2.65505, 2.65892, 2.66297, 2.66714, 2.6714, 2.67566, 2.67982, 2.68391, 2.688, 2.69205, 2.69615, 2.70041, 2.70489, 2.70954, 2.71436, 2.71941, 2.72488, 2.73121, 2.73885, 2.74844, 2.76, 2.77339, 2.78845, 2.8049, 2.82252, 2.84115, 2.86078, 2.88162, 2.90423, 2.92933, 2.95826, 2.99188, 3.0309, 3.07557, 3.12516, 3.17751, 3.22914, 3.27598, 3.31469, 3.34398, 3.36462, 3.37873, 3.38839, 3.39516, 3.39984, 3.40278, 3.40391, 3.40302, 3.40004, 3.39498, 3.38792, 3.37902, 3.36845, 3.35637, 3.34285, 3.32799, 3.31195, 3.2949, 3.27689, 3.25814, 3.23878, 3.21895, 3.19868, 3.17797, 3.15683, 3.1352, 3.11303, 3.09033, 3.06709, 3.0435, 3.01984, 2.99632, 2.97316, 2.95032, 2.9278, 2.90566, 2.88394, 2.86276, 2.84219, 2.82237, 2.80319, 2.78469, 2.76671)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.53274, 2.53378, 2.53481, 2.53585, 2.53697, 2.53818, 2.53951, 2.54099, 2.54263, 2.5445, 2.5465, 2.5487, 2.55107, 2.55361, 2.55633, 2.55924, 2.56241, 2.56584, 2.5696, 2.57357, 2.57775, 2.58204, 2.58637, 2.59068, 2.59492, 2.59911, 2.6032, 2.60736, 2.61156, 2.6159, 2.62036, 2.62487, 2.62951, 2.63447, 2.64009, 2.6468, 2.65507, 2.66487, 2.67618, 2.68876, 2.70237, 2.71671, 2.73159, 2.747, 2.76309, 2.78045, 2.79978, 2.82239, 2.84889, 2.87995, 2.91579, 2.95586, 2.99839, 3.04046, 3.07866, 3.11014, 3.13363, 3.1497, 3.15988, 3.16612, 3.16963, 3.17132, 3.17141, 3.16987, 3.16659, 3.16147, 3.1545, 3.14582, 3.13554, 3.12376, 3.11065, 3.09635, 3.08096, 3.06462, 3.04738, 3.02944, 3.01082, 2.9918, 2.97245, 2.95281, 2.93287, 2.91261, 2.89194, 2.87083, 2.84927, 2.8273, 2.80503, 2.78267, 2.76047, 2.73857, 2.71703, 2.69583, 2.67496, 2.65448, 2.63445, 2.61498, 2.5961, 2.5778, 2.56, 2.54266)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.99476, 3.00045, 3.00601, 3.0116, 3.01721, 3.02282, 3.02849, 3.03421, 3.03999, 3.04597, 3.05204, 3.05822, 3.06448, 3.07084, 3.07732, 3.08396, 3.09079, 3.09787, 3.10507, 3.11249, 3.12009, 3.1278, 3.13549, 3.14306, 3.15051, 3.15793, 3.16533, 3.17275, 3.18021, 3.1877, 3.19525, 3.20284, 3.21048, 3.21832, 3.22664, 3.23576, 3.24606, 3.25761, 3.27036, 3.28418, 3.29886, 3.3142, 3.33004, 3.34639, 3.36346, 3.38163, 3.40144, 3.42399, 3.44992, 3.47988, 3.51409, 3.55209, 3.59226, 3.63198, 3.6682, 3.6983, 3.72102, 3.73672, 3.74682, 3.75309, 3.75677, 3.75866, 3.75902, 3.75774, 3.75482, 3.75017, 3.74378, 3.73578, 3.72632, 3.71554, 3.70355, 3.69045, 3.67636, 3.66135, 3.64563, 3.62938, 3.61252, 3.59533, 3.57788, 3.56021, 3.54236, 3.52425, 3.50586, 3.48712, 3.46808, 3.44874, 3.42922, 3.40971, 3.39038, 3.37132, 3.35257, 3.33414, 3.31602, 3.29827, 3.28089, 3.26402, 3.24762, 3.23169, 3.21628, 3.20131)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.46943, 2.46967, 2.46997, 2.47022, 2.47056, 2.47102, 2.47162, 2.47245, 2.47348, 2.47471, 2.47612, 2.47776, 2.47966, 2.48178, 2.48413, 2.48676, 2.48968, 2.49298, 2.49663, 2.50058, 2.50478, 2.50909, 2.51337, 2.51755, 2.52168, 2.52574, 2.5299, 2.53416, 2.53864, 2.54339, 2.54837, 2.55355, 2.55898, 2.56486, 2.5716, 2.57965, 2.58971, 2.60179, 2.6157, 2.63122, 2.64798, 2.66564, 2.68395, 2.70293, 2.72295, 2.7446, 2.76873, 2.79692, 2.82989, 2.86839, 2.91273, 2.96225, 3.0148, 3.06687, 3.11436, 3.15379, 3.18361, 3.20455, 3.21859, 3.22789, 3.2341, 3.23824, 3.2406, 3.24112, 3.23966, 3.23609, 3.23037, 3.22265, 3.21315, 3.202, 3.18939, 3.17541, 3.16017, 3.14382, 3.12655, 3.10846, 3.08965, 3.07041, 3.05076, 3.03082, 3.01055, 2.98992, 2.96887, 2.94731, 2.9252, 2.9026, 2.8797, 2.85671, 2.83388, 2.81141, 2.78935, 2.76771, 2.74643, 2.72555, 2.70518, 2.68547, 2.66639, 2.64796, 2.63005, 2.61266)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.57138, 3.5816, 3.59165, 3.60163, 3.61153, 3.62135, 3.63113, 3.6409, 3.65073, 3.66056, 3.67041, 3.6804, 3.69047, 3.70058, 3.71076, 3.72103, 3.73144, 3.7421, 3.75292, 3.76408, 3.77542, 3.78679, 3.79813, 3.80938, 3.82051, 3.83146, 3.84237, 3.85338, 3.8645, 3.87568, 3.88692, 3.89825, 3.90961, 3.92108, 3.93306, 3.94584, 3.96, 3.97551, 3.99234, 4.01028, 4.02896, 4.04811, 4.06755, 4.0872, 4.10725, 4.12832, 4.15124, 4.1772, 4.20687, 4.24094, 4.27983, 4.32318, 4.36949, 4.41622, 4.46031, 4.49899, 4.53057, 4.55488, 4.57284, 4.58592, 4.59574, 4.60358, 4.60939, 4.61331, 4.61522, 4.61499, 4.61273, 4.60849, 4.60255, 4.5951, 4.58599, 4.57547, 4.56354, 4.55056, 4.53677, 4.52221, 4.50686, 4.49093, 4.47484, 4.45828, 4.44151, 4.42448, 4.40703, 4.38926, 4.37098, 4.35216, 4.33298, 4.31372, 4.29471, 4.27606, 4.25772, 4.23973, 4.22206, 4.2046, 4.18749, 4.17078, 4.15465, 4.13888, 4.1234, 4.10817)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.24882, 3.25481, 3.26085, 3.267, 3.27328, 3.27958, 3.28588, 3.2923, 3.29888, 3.3057, 3.31264, 3.31982, 3.32723, 3.3348, 3.34253, 3.35048, 3.35872, 3.36722, 3.37607, 3.3852, 3.39461, 3.40415, 3.41367, 3.42304, 3.43224, 3.4415, 3.45062, 3.45985, 3.46922, 3.4788, 3.48856, 3.49844, 3.50836, 3.51849, 3.52917, 3.54092, 3.5543, 3.56925, 3.58553, 3.60287, 3.62086, 3.6392, 3.65758, 3.67585, 3.69446, 3.7141, 3.7359, 3.76145, 3.79112, 3.82598, 3.86631, 3.91172, 3.95994, 4.00763, 4.0512, 4.08728, 4.11402, 4.13218, 4.14346, 4.15047, 4.15379, 4.15524, 4.15499, 4.15278, 4.14849, 4.14211, 4.13375, 4.12338, 4.11106, 4.09719, 4.08208, 4.06574, 4.04797, 4.0291, 4.00968, 3.98926, 3.96821, 3.94671, 3.925, 3.90291, 3.88053, 3.85782, 3.83462, 3.81086, 3.78651, 3.7617, 3.73673, 3.71177, 3.68694, 3.66238, 3.63821, 3.61438, 3.59086, 3.56787, 3.54536, 3.52347, 3.50214, 3.48134, 3.46092, 3.44076)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.23103, 2.23081, 2.2307, 2.23064, 2.23062, 2.23071, 2.23097, 2.23138, 2.23193, 2.23281, 2.23381, 2.23504, 2.23652, 2.23822, 2.24019, 2.24247, 2.24507, 2.24806, 2.25145, 2.2551, 2.25899, 2.2629, 2.26673, 2.27043, 2.27401, 2.27753, 2.2812, 2.28515, 2.2894, 2.29399, 2.29889, 2.30401, 2.30935, 2.31503, 2.32144, 2.32904, 2.33857, 2.34978, 2.36258, 2.37662, 2.39145, 2.40672, 2.42225, 2.43819, 2.45499, 2.4734, 2.49437, 2.51939, 2.54905, 2.58402, 2.62439, 2.66927, 2.71649, 2.76279, 2.80461, 2.83919, 2.86551, 2.88433, 2.89759, 2.90696, 2.9138, 2.91895, 2.92258, 2.92458, 2.92477, 2.92307, 2.91955, 2.91434, 2.90751, 2.89922, 2.8896, 2.87881, 2.86685, 2.8538, 2.83987, 2.82516, 2.80978, 2.79394, 2.77767, 2.7611, 2.74416, 2.72681, 2.70901, 2.6907, 2.67178, 2.65228, 2.63238, 2.61235, 2.59246, 2.57285, 2.55357, 2.53461, 2.51595, 2.49756, 2.47958, 2.46208, 2.44513, 2.42868, 2.41263, 2.39692)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.29172, 2.29224, 2.29277, 2.29329, 2.29389, 2.29465, 2.2956, 2.29675, 2.29811, 2.29968, 2.30147, 2.30355, 2.30592, 2.30856, 2.31143, 2.31465, 2.31824, 2.32228, 2.32684, 2.33178, 2.33695, 2.34214, 2.34723, 2.35219, 2.35703, 2.36181, 2.36665, 2.37183, 2.37744, 2.38358, 2.39012, 2.39687, 2.40376, 2.41095, 2.41894, 2.42828, 2.4396, 2.45276, 2.46755, 2.48354, 2.50012, 2.51686, 2.53352, 2.55019, 2.56749, 2.58636, 2.60802, 2.63421, 2.66559, 2.70287, 2.74618, 2.79458, 2.84585, 2.89648, 2.94249, 2.98078, 3.0101, 3.03125, 3.04622, 3.05691, 3.0649, 3.07107, 3.07558, 3.07833, 3.07912, 3.07791, 3.07481, 3.06985, 3.06313, 3.05481, 3.04504, 3.03395, 3.02167, 3.00827, 2.99386, 2.97852, 2.96252, 2.94601, 2.92911, 2.91178, 2.89407, 2.87596, 2.85735, 2.83813, 2.8182, 2.7976, 2.77645, 2.75508, 2.73384, 2.71296, 2.69248, 2.67232, 2.6524, 2.6328, 2.61362, 2.59492, 2.5767, 2.55889, 2.54148, 2.52447)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.99463, 3.00099, 3.00726, 3.01352, 3.01982, 3.02616, 3.03256, 3.039, 3.04554, 3.05228, 3.05918, 3.06617, 3.07327, 3.0805, 3.08791, 3.09552, 3.10337, 3.11147, 3.11982, 3.12844, 3.13738, 3.14652, 3.15572, 3.16482, 3.17371, 3.18251, 3.19128, 3.20023, 3.20954, 3.21914, 3.22896, 3.23888, 3.24882, 3.25892, 3.26955, 3.28119, 3.29441, 3.30915, 3.3252, 3.34209, 3.35914, 3.37579, 3.39163, 3.40664, 3.42139, 3.43685, 3.45432, 3.47547, 3.50098, 3.53169, 3.56779, 3.60868, 3.65261, 3.69652, 3.73679, 3.77034, 3.79578, 3.81363, 3.8255, 3.83309, 3.83786, 3.84071, 3.84187, 3.84139, 3.83917, 3.8352, 3.82936, 3.82172, 3.81257, 3.80207, 3.79039, 3.77767, 3.76395, 3.74932, 3.73393, 3.718, 3.70163, 3.68507, 3.66837, 3.65151, 3.63449, 3.61725, 3.59977, 3.5819, 3.56352, 3.5446, 3.52526, 3.50581, 3.48656, 3.46772, 3.44931, 3.43125, 3.41345, 3.3959, 3.37868, 3.36182, 3.34531, 3.32905, 3.31284, 3.29672)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.15492, 3.16084, 3.16672, 3.17258, 3.1785, 3.1845, 3.19064, 3.19703, 3.20365, 3.21042, 3.21748, 3.22473, 3.23218, 3.23991, 3.24796, 3.25639, 3.26518, 3.27436, 3.28397, 3.29409, 3.30457, 3.31526, 3.32592, 3.3364, 3.34667, 3.35675, 3.36688, 3.37729, 3.38816, 3.39954, 3.4113, 3.42319, 3.43506, 3.44704, 3.45958, 3.47342, 3.48919, 3.50666, 3.52548, 3.54497, 3.5643, 3.58275, 3.5999, 3.61587, 3.63145, 3.64806, 3.66742, 3.69166, 3.72168, 3.75828, 3.80148, 3.85036, 3.90266, 3.95481, 4.0026, 4.04258, 4.07322, 4.09521, 4.11071, 4.12151, 4.12931, 4.13493, 4.13866, 4.1404, 4.14008, 4.13765, 4.1331, 4.12647, 4.11795, 4.10775, 4.096, 4.08284, 4.06843, 4.05281, 4.03613, 4.01851, 4.00024, 3.98156, 3.96253, 3.94322, 3.9236, 3.90359, 3.88307, 3.86187, 3.83984, 3.81698, 3.79347, 3.76971, 3.74612, 3.72298, 3.70034, 3.6781, 3.65612, 3.63443, 3.61308, 3.59219, 3.57161, 3.55126, 3.53098, 3.51084)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.65472, 2.65579, 2.65681, 2.6579, 2.65911, 2.66053, 2.66221, 2.66413, 2.66629, 2.66873, 2.67152, 2.67465, 2.67811, 2.68191, 2.68606, 2.69062, 2.69564, 2.70116, 2.70712, 2.71352, 2.72014, 2.72679, 2.7333, 2.73958, 2.74567, 2.75166, 2.75778, 2.76435, 2.77156, 2.7795, 2.78806, 2.79698, 2.80607, 2.81534, 2.82521, 2.83632, 2.84933, 2.86403, 2.88009, 2.89698, 2.91401, 2.93057, 2.94632, 2.96134, 2.97634, 2.99244, 3.01117, 3.03455, 3.06335, 3.09839, 3.13999, 3.18742, 3.23865, 3.29011, 3.33742, 3.37667, 3.4058, 3.42545, 3.43764, 3.44472, 3.44859, 3.45023, 3.44988, 3.44751, 3.44317, 3.43675, 3.42823, 3.41768, 3.40527, 3.39121, 3.37569, 3.35894, 3.34109, 3.32232, 3.30269, 3.28219, 3.26108, 3.23965, 3.21806, 3.1963, 3.17432, 3.15207, 3.12948, 3.10637, 3.08268, 3.05845, 3.03384, 3.00917, 2.98471, 2.96069, 2.93729, 2.9145, 2.89222, 2.87035, 2.84895, 2.82801, 2.80755, 2.78759, 2.76793, 2.74865)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.47687, 2.47783, 2.47875, 2.4797, 2.48078, 2.48203, 2.48349, 2.48521, 2.48718, 2.48942, 2.49195, 2.49477, 2.49797, 2.50153, 2.50548, 2.50988, 2.51472, 2.52022, 2.52621, 2.53268, 2.53946, 2.54631, 2.55297, 2.55931, 2.56539, 2.57138, 2.57767, 2.58449, 2.59213, 2.60063, 2.60984, 2.61943, 2.62915, 2.63905, 2.64956, 2.66138, 2.67527, 2.69102, 2.70806, 2.72578, 2.74331, 2.75995, 2.77536, 2.78973, 2.804, 2.81955, 2.83806, 2.86174, 2.8914, 2.92776, 2.97086, 3.01978, 3.07222, 3.12453, 3.17252, 3.21267, 3.24345, 3.26554, 3.28097, 3.29188, 3.29977, 3.30574, 3.30989, 3.31222, 3.31254, 3.31077, 3.30696, 3.30125, 3.29379, 3.28472, 3.27422, 3.26239, 3.24941, 3.23533, 3.22025, 3.20437, 3.18775, 3.17067, 3.15335, 3.13581, 3.11799, 3.09981, 3.08112, 3.06177, 3.04164, 3.02072, 2.99921, 2.97744, 2.95581, 2.93462, 2.91393, 2.8937, 2.87381, 2.85421, 2.8349, 2.81594, 2.79734, 2.77896, 2.76081, 2.74286)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.96706, 2.97199, 2.97683, 2.98166, 2.98654, 2.99151, 2.99664, 3.00192, 3.00742, 3.01312, 3.01897, 3.025, 3.03125, 3.03772, 3.04443, 3.05148, 3.05888, 3.06661, 3.0748, 3.08335, 3.09222, 3.10123, 3.11015, 3.11887, 3.12737, 3.13577, 3.14415, 3.15288, 3.16213, 3.17194, 3.1822, 3.19269, 3.20325, 3.21389, 3.22495, 3.23699, 3.25062, 3.26566, 3.28172, 3.29819, 3.31433, 3.32947, 3.34325, 3.35581, 3.36794, 3.38087, 3.39606, 3.41551, 3.43997, 3.47019, 3.50632, 3.54758, 3.59207, 3.63669, 3.67775, 3.7121, 3.7382, 3.75644, 3.76848, 3.7762, 3.78099, 3.78382, 3.78498, 3.78447, 3.7822, 3.77808, 3.77204, 3.7642, 3.75475, 3.74386, 3.73169, 3.71839, 3.7041, 3.68889, 3.67281, 3.656, 3.63863, 3.62103, 3.60328, 3.58534, 3.5673, 3.54895, 3.53023, 3.51099, 3.49111, 3.47058, 3.4495, 3.42818, 3.40701, 3.38622, 3.36591, 3.34607, 3.3265, 3.30716, 3.28802, 3.26913, 3.25053, 3.23212, 3.21381, 3.19558)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.69311, 2.69501, 2.69693, 2.69885, 2.70091, 2.70316, 2.70565, 2.70845, 2.7115, 2.7149, 2.71869, 2.7228, 2.72731, 2.7323, 2.73783, 2.74392, 2.75061, 2.75793, 2.7659, 2.7744, 2.78322, 2.79204, 2.80058, 2.80864, 2.81627, 2.82377, 2.83158, 2.84036, 2.85036, 2.86172, 2.87413, 2.8871, 2.9002, 2.91332, 2.92691, 2.94174, 2.95861, 2.97725, 2.99688, 3.01651, 3.0349, 3.05095, 3.06407, 3.07457, 3.08372, 3.09358, 3.1066, 3.12543, 3.15101, 3.18406, 3.2247, 3.27191, 3.3233, 3.37512, 3.42306, 3.46342, 3.4944, 3.51657, 3.53201, 3.5428, 3.55054, 3.55635, 3.56033, 3.56245, 3.56262, 3.56074, 3.55683, 3.55099, 3.54338, 3.53418, 3.52357, 3.51167, 3.49866, 3.48455, 3.46959, 3.45374, 3.43716, 3.42007, 3.40278, 3.38541, 3.36787, 3.34993, 3.33149, 3.31233, 3.29224, 3.27117, 3.24929, 3.22701, 3.20488, 3.18329, 3.16235, 3.142, 3.12207, 3.10234, 3.08282, 3.06349, 3.04427, 3.02498, 3.00555, 2.98611)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.05898, 3.06231, 3.06561, 3.06896, 3.07245, 3.07616, 3.08014, 3.08444, 3.08901, 3.09404, 3.09936, 3.10514, 3.11142, 3.11828, 3.12573, 3.13382, 3.14263, 3.15215, 3.16241, 3.17334, 3.18469, 3.19603, 3.20696, 3.21729, 3.22719, 3.23695, 3.24726, 3.25863, 3.27157, 3.28614, 3.30203, 3.31862, 3.33535, 3.35207, 3.36924, 3.38766, 3.40824, 3.43065, 3.45396, 3.47681, 3.49766, 3.51518, 3.52877, 3.5389, 3.54724, 3.55637, 3.56896, 3.58817, 3.61508, 3.65042, 3.69415, 3.74519, 3.80093, 3.8573, 3.9095, 3.9535, 3.98738, 4.01192, 4.0291, 4.04116, 4.04993, 4.0564, 4.06088, 4.06334, 4.06372, 4.06187, 4.05774, 4.05148, 4.04334, 4.0336, 4.02237, 4.00984, 3.99607, 3.98127, 3.96548, 3.94893, 3.93166, 3.91399, 3.89619, 3.87842, 3.86048, 3.84221, 3.8234, 3.80384, 3.78331, 3.7617, 3.73916, 3.71622, 3.69355, 3.67159, 3.65044, 3.62993, 3.60982, 3.5899, 3.5701, 3.55045, 3.53083, 3.51098, 3.49082, 3.47049)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.28923, 3.29435, 3.29952, 3.30482, 3.31024, 3.31584, 3.32175, 3.32799, 3.33462, 3.34161, 3.34884, 3.35658, 3.36484, 3.37365, 3.38304, 3.39305, 3.40377, 3.41512, 3.42711, 3.4398, 3.45325, 3.46712, 3.48094, 3.49437, 3.50743, 3.52031, 3.53333, 3.54702, 3.56211, 3.57889, 3.59706, 3.6159, 3.63477, 3.65344, 3.6723, 3.69241, 3.71491, 3.73952, 3.76504, 3.7901, 3.81303, 3.83228, 3.84694, 3.85717, 3.86438, 3.87121, 3.88087, 3.89714, 3.9213, 3.95425, 3.99568, 4.0447, 4.09892, 4.15442, 4.20617, 4.24958, 4.28242, 4.30494, 4.31881, 4.32701, 4.33287, 4.3362, 4.33732, 4.33575, 4.33218, 4.32636, 4.31847, 4.30851, 4.29635, 4.28259, 4.26773, 4.25157, 4.23451, 4.21601, 4.1967, 4.17603, 4.15489, 4.1336, 4.11297, 4.09191, 4.07025, 4.04831, 4.02608, 4.00345, 3.97974, 3.95469, 3.92851, 3.9018, 3.87532, 3.84964, 3.82507, 3.80137, 3.77789, 3.75457, 3.73154, 3.70883, 3.68601, 3.66249, 3.63866, 3.61474)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.40898, 2.40986, 2.41082, 2.41182, 2.41295, 2.41429, 2.41586, 2.41772, 2.41995, 2.42252, 2.42542, 2.42869, 2.43242, 2.43671, 2.44157, 2.44697, 2.453, 2.45975, 2.46721, 2.47521, 2.48347, 2.4916, 2.49931, 2.50646, 2.51319, 2.51987, 2.52715, 2.53548, 2.54527, 2.5566, 2.56911, 2.58223, 2.59545, 2.60859, 2.62196, 2.63625, 2.65215, 2.66921, 2.6866, 2.70322, 2.71789, 2.7296, 2.738, 2.74359, 2.74785, 2.7528, 2.76067, 2.77401, 2.79356, 2.81999, 2.85324, 2.8923, 2.9349, 2.97775, 3.01714, 3.05001, 3.07493, 3.09235, 3.10399, 3.11156, 3.11656, 3.11972, 3.12141, 3.12155, 3.11999, 3.1167, 3.11165, 3.10499, 3.09696, 3.08772, 3.07742, 3.06622, 3.05418, 3.04141, 3.02801, 3.01401, 2.9996, 2.98499, 2.97038, 2.95584, 2.94129, 2.92655, 2.91145, 2.89583, 2.8795, 2.86235, 2.84455, 2.82649, 2.80863, 2.79135, 2.77475, 2.7587, 2.74299, 2.72747, 2.71202, 2.69663, 2.68122, 2.6656, 2.64974, 2.63371)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.14612, 3.15093, 3.15574, 3.16061, 3.16566, 3.17092, 3.17644, 3.18231, 3.18861, 3.1954, 3.20245, 3.20985, 3.21775, 3.22624, 3.23537, 3.24517, 3.25556, 3.2667, 3.27861, 3.29134, 3.3048, 3.31867, 3.33254, 3.34605, 3.35915, 3.37205, 3.38531, 3.39957, 3.41547, 3.43327, 3.45262, 3.47275, 3.49282, 3.51247, 3.5323, 3.55355, 3.57744, 3.60341, 3.6303, 3.65631, 3.67926, 3.69716, 3.70879, 3.7144, 3.716, 3.71688, 3.7209, 3.7322, 3.75223, 3.78176, 3.82068, 3.86774, 3.92017, 3.97382, 4.02388, 4.06629, 4.09921, 4.12302, 4.13973, 4.15158, 4.1602, 4.16684, 4.17153, 4.17428, 4.17503, 4.17365, 4.17011, 4.16454, 4.1572, 4.14828, 4.13792, 4.12622, 4.11329, 4.09934, 4.08432, 4.06839, 4.05181, 4.03479, 4.0177, 4.00064, 3.98351, 3.9661, 3.94809, 3.92913, 3.90887, 3.88703, 3.86381, 3.83995, 3.81634, 3.79357, 3.77165, 3.75041, 3.72952, 3.70873, 3.68796, 3.66707, 3.64591, 3.62403, 3.60136, 3.57803)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.99043, 2.99504, 2.99975, 3.00449, 3.0093, 3.01429, 3.01953, 3.02504, 3.03088, 3.03697, 3.04342, 3.05019, 3.05736, 3.06499, 3.07312, 3.0818, 3.09101, 3.10082, 3.1113, 3.12241, 3.13405, 3.14591, 3.15759, 3.16888, 3.17979, 3.19058, 3.20176, 3.21391, 3.2275, 3.24268, 3.25914, 3.2762, 3.29322, 3.30991, 3.32666, 3.34446, 3.364, 3.38484, 3.40599, 3.42597, 3.44324, 3.45645, 3.46496, 3.46925, 3.47094, 3.47257, 3.47697, 3.48724, 3.5045, 3.52944, 3.56199, 3.60112, 3.64452, 3.68862, 3.72937, 3.76341, 3.78912, 3.80682, 3.81811, 3.82504, 3.82903, 3.83115, 3.83168, 3.83052, 3.82759, 3.82278, 3.81611, 3.8077, 3.79779, 3.78665, 3.77442, 3.76123, 3.74714, 3.73218, 3.71657, 3.70037, 3.68374, 3.66693, 3.65021, 3.63358, 3.61697, 3.6002, 3.58302, 3.56519, 3.54647, 3.52671, 3.50609, 3.4851, 3.46431, 3.44414, 3.42474, 3.40597, 3.38753, 3.36922, 3.35091, 3.33253, 3.31386, 3.29475, 3.27505, 3.25491)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.81424, 2.81871, 2.82315, 2.82763, 2.83221, 2.83694, 2.84185, 2.84701, 2.85241, 2.85812, 2.86408, 2.87033, 2.87695, 2.88398, 2.89144, 2.89943, 2.90789, 2.917, 2.92665, 2.93687, 2.94764, 2.95861, 2.96942, 2.97991, 2.99003, 3.00002, 3.0103, 3.02155, 3.03419, 3.04832, 3.06359, 3.07941, 3.09519, 3.11069, 3.12635, 3.14293, 3.161, 3.18021, 3.19947, 3.21746, 3.23262, 3.24365, 3.24994, 3.25199, 3.25146, 3.25071, 3.25242, 3.25952, 3.27296, 3.29327, 3.32027, 3.35296, 3.38931, 3.42633, 3.46065, 3.48949, 3.51149, 3.52691, 3.53712, 3.54364, 3.54779, 3.55031, 3.55143, 3.55118, 3.54947, 3.54622, 3.54143, 3.5352, 3.52776, 3.51933, 3.51002, 3.49987, 3.48902, 3.47756, 3.46551, 3.453, 3.44012, 3.42721, 3.41444, 3.40185, 3.38937, 3.37678, 3.36384, 3.3503, 3.33593, 3.32062, 3.30451, 3.28804, 3.27177, 3.2561, 3.24113, 3.22668, 3.2125, 3.19839, 3.18422, 3.16992, 3.15522, 3.14002, 3.12421, 3.10789)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.23021, 3.23348, 3.23678, 3.24026, 3.24399, 3.24807, 3.25256, 3.25751, 3.26301, 3.26927, 3.27614, 3.28372, 3.29211, 3.30149, 3.31198, 3.32363, 3.33644, 3.35051, 3.36576, 3.38206, 3.39891, 3.41563, 3.43147, 3.44599, 3.45941, 3.47253, 3.48661, 3.50306, 3.52262, 3.54558, 3.57136, 3.59867, 3.62606, 3.65278, 3.67927, 3.70684, 3.73698, 3.76901, 3.80111, 3.83084, 3.85523, 3.87165, 3.87893, 3.87801, 3.87203, 3.8656, 3.86359, 3.87088, 3.88918, 3.91934, 3.96119, 4.01319, 4.07223, 4.13339, 4.19084, 4.23958, 4.27703, 4.30365, 4.32186, 4.33418, 4.3428, 4.34894, 4.35309, 4.35499, 4.35458, 4.35181, 4.34669, 4.33938, 4.33007, 4.31906, 4.30664, 4.29293, 4.27821, 4.26253, 4.24569, 4.22792, 4.20958, 4.19088, 4.17231, 4.1541, 4.13591, 4.11746, 4.09841, 4.07842, 4.05695, 4.03358, 4.00854, 3.98264, 3.957, 3.93248, 3.90926, 3.88707, 3.86537, 3.84375, 3.82193, 3.79978, 3.77693, 3.75293, 3.72764, 3.70141)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.91042, 2.91224, 2.91419, 2.91639, 2.9189, 2.92185, 2.92538, 2.92956, 2.93438, 2.94, 2.94634, 2.95354, 2.96176, 2.97117, 2.98193, 2.99411, 3.00767, 3.0227, 3.0392, 3.05696, 3.07544, 3.09366, 3.11071, 3.1262, 3.14052, 3.15459, 3.16998, 3.18836, 3.21061, 3.23699, 3.2667, 3.29807, 3.32934, 3.35954, 3.3891, 3.41952, 3.45203, 3.48575, 3.51835, 3.5466, 3.56697, 3.57646, 3.57384, 3.56064, 3.54114, 3.52105, 3.50589, 3.50111, 3.508, 3.52723, 3.55833, 3.59951, 3.64751, 3.69765, 3.74477, 3.78466, 3.81523, 3.8369, 3.85168, 3.86166, 3.86871, 3.87382, 3.87724, 3.87893, 3.87869, 3.87641, 3.87222, 3.8663, 3.85894, 3.85044, 3.84093, 3.83057, 3.81947, 3.80779, 3.79545, 3.78248, 3.76899, 3.7555, 3.74245, 3.72989, 3.71769, 3.70547, 3.69275, 3.67895, 3.66339, 3.64573, 3.62625, 3.60585, 3.58577, 3.5669, 3.54949, 3.53316, 3.51721, 3.50109, 3.48442, 3.46696, 3.44816, 3.42762, 3.40528, 3.38148)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.83385, 2.83706, 2.84025, 2.84353, 2.84703, 2.85084, 2.85502, 2.8596, 2.86457, 2.87001, 2.87591, 2.88228, 2.88928, 2.89703, 2.90555, 2.91488, 2.925, 2.93611, 2.94829, 2.96146, 2.9753, 2.98929, 3.00285, 3.01566, 3.02792, 3.04009, 3.05299, 3.06774, 3.08502, 3.10489, 3.1268, 3.14964, 3.17232, 3.19434, 3.21607, 3.23847, 3.2622, 3.28646, 3.30951, 3.32916, 3.34315, 3.34967, 3.34815, 3.33973, 3.32718, 3.3143, 3.30479, 3.30234, 3.3081, 3.32257, 3.34534, 3.3751, 3.40934, 3.4447, 3.47759, 3.50507, 3.52568, 3.53965, 3.54843, 3.55349, 3.55611, 3.55724, 3.55709, 3.55568, 3.55286, 3.54852, 3.54273, 3.5357, 3.52771, 3.51896, 3.50954, 3.49962, 3.48927, 3.47859, 3.46763, 3.45633, 3.44492, 3.4337, 3.42299, 3.41284, 3.40307, 3.39331, 3.38322, 3.37246, 3.36065, 3.34758, 3.33347, 3.31892, 3.30467, 3.29126, 3.27883, 3.26711, 3.25563, 3.24407, 3.23212, 3.21955, 3.2061, 3.19153, 3.17575, 3.15905)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.78079, 2.78273, 2.78479, 2.78699, 2.78944, 2.79224, 2.7954, 2.79891, 2.80277, 2.807, 2.81182, 2.81717, 2.82306, 2.82959, 2.83679, 2.84468, 2.8533, 2.86262, 2.87271, 2.8832, 2.89354, 2.90344, 2.91275, 2.92164, 2.93048, 2.9397, 2.9499, 2.96168, 2.97516, 2.98992, 3.00535, 3.02091, 3.03647, 3.05247, 3.06965, 3.08851, 3.10913, 3.13084, 3.1522, 3.1719, 3.18879, 3.20247, 3.21348, 3.22333, 3.23417, 3.24829, 3.26777, 3.29427, 3.32934, 3.37279, 3.42346, 3.47874, 3.53449, 3.58595, 3.62923, 3.66246, 3.68608, 3.70215, 3.71302, 3.72047, 3.72559, 3.72863, 3.72971, 3.72866, 3.7254, 3.71993, 3.71236, 3.70294, 3.69193, 3.67951, 3.66585, 3.65104, 3.6352, 3.61843, 3.60092, 3.58283, 3.56431, 3.54564, 3.52687, 3.50802, 3.48889, 3.46939, 3.44925, 3.42825, 3.40631, 3.38358, 3.36051, 3.33764, 3.31542, 3.29395, 3.27314, 3.25278, 3.23275, 3.21297, 3.19336, 3.17388, 3.15438, 3.13476, 3.11509, 3.09565)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.5739, 2.57476, 2.57555, 2.57644, 2.57734, 2.57839, 2.57962, 2.58103, 2.58266, 2.58443, 2.58649, 2.58883, 2.5914, 2.59421, 2.59732, 2.60078, 2.60459, 2.60876, 2.61334, 2.61822, 2.62334, 2.62844, 2.63344, 2.63824, 2.64285, 2.64742, 2.6521, 2.65704, 2.66234, 2.66806, 2.67404, 2.68017, 2.68654, 2.69345, 2.70138, 2.71077, 2.72193, 2.73491, 2.74949, 2.7653, 2.78182, 2.79868, 2.81573, 2.83339, 2.85238, 2.87373, 2.89855, 2.92792, 2.96273, 3.00354, 3.05019, 3.1013, 3.15401, 3.20379, 3.2461, 3.27912, 3.30329, 3.32044, 3.33271, 3.3417, 3.34841, 3.35325, 3.35628, 3.35738, 3.35642, 3.35337, 3.34828, 3.34129, 3.33247, 3.32204, 3.31007, 3.29671, 3.28215, 3.26635, 3.24957, 3.23195, 3.21367, 3.19486, 3.17555, 3.15578, 3.13547, 3.1146, 3.09307, 3.07083, 3.04792, 3.02444, 3.00066, 2.97695, 2.95356, 2.93055, 2.90784, 2.88545, 2.8634, 2.8418, 2.82073, 2.80025, 2.78029, 2.76085, 2.74186, 2.72338)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.19217, 2.19194, 2.19171, 2.19145, 2.19119, 2.19103, 2.19104, 2.1912, 2.19145, 2.19189, 2.19249, 2.19321, 2.1941, 2.19519, 2.19645, 2.19783, 2.1994, 2.20129, 2.20351, 2.20599, 2.20865, 2.21141, 2.21423, 2.21712, 2.22003, 2.22288, 2.22567, 2.22831, 2.23082, 2.23325, 2.23571, 2.23826, 2.24109, 2.24451, 2.24892, 2.25478, 2.26264, 2.27259, 2.28467, 2.29884, 2.31506, 2.33321, 2.35317, 2.37487, 2.39831, 2.42368, 2.45147, 2.48271, 2.51801, 2.55812, 2.60317, 2.6524, 2.70369, 2.75371, 2.79878, 2.83598, 2.86432, 2.88472, 2.89911, 2.90935, 2.91687, 2.92257, 2.92655, 2.92871, 2.92894, 2.92716, 2.92336, 2.91766, 2.91022, 2.90114, 2.89056, 2.87859, 2.86535, 2.85098, 2.8357, 2.81951, 2.80262, 2.78518, 2.76722, 2.74885, 2.73009, 2.71089, 2.69116, 2.67094, 2.65025, 2.62919, 2.60792, 2.5866, 2.56538, 2.54438, 2.52357, 2.50304, 2.4829, 2.46319, 2.44407, 2.4256, 2.40785, 2.39088, 2.37466, 2.35912)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.58878, 2.59457, 2.60029, 2.60591, 2.61148, 2.61697, 2.62238, 2.62785, 2.63335, 2.63882, 2.64424, 2.64962, 2.65506, 2.66056, 2.66607, 2.6716, 2.67711, 2.68272, 2.68843, 2.69427, 2.7002, 2.70614, 2.71207, 2.71795, 2.72379, 2.72961, 2.73536, 2.74099, 2.74655, 2.75209, 2.75767, 2.7633, 2.76904, 2.77504, 2.78156, 2.78887, 2.7974, 2.80725, 2.81838, 2.83072, 2.84419, 2.85869, 2.87409, 2.89035, 2.90752, 2.92574, 2.9454, 2.96739, 2.99218, 3.02032, 3.05209, 3.08718, 3.12441, 3.16167, 3.19643, 3.22642, 3.25031, 3.26818, 3.28097, 3.29008, 3.29665, 3.30141, 3.30466, 3.30636, 3.30645, 3.30488, 3.3017, 3.29701, 3.29088, 3.28342, 3.27475, 3.265, 3.25427, 3.24276, 3.23055, 3.21765, 3.20415, 3.19025, 3.17609, 3.16165, 3.14698, 3.13205, 3.11677, 3.1011, 3.08508, 3.06882, 3.05239, 3.03588, 3.0194, 3.00307, 2.98695, 2.971, 2.95528, 2.93982, 2.92464, 2.9098, 2.89538, 2.88134, 2.86766, 2.85427)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.55331, 2.55364, 2.55392, 2.55425, 2.55462, 2.55506, 2.55561, 2.55631, 2.5572, 2.5583, 2.55962, 2.56117, 2.56288, 2.56475, 2.56686, 2.56923, 2.57182, 2.57468, 2.57791, 2.5814, 2.58511, 2.58896, 2.59287, 2.59678, 2.60064, 2.60439, 2.60815, 2.612, 2.61596, 2.62007, 2.62433, 2.6287, 2.63322, 2.63807, 2.6435, 2.64996, 2.65782, 2.6676, 2.67914, 2.69238, 2.70712, 2.72306, 2.74003, 2.75797, 2.77697, 2.79738, 2.81979, 2.84492, 2.87412, 2.90812, 2.94749, 2.99206, 3.0404, 3.08953, 3.13562, 3.17516, 3.20611, 3.22841, 3.24358, 3.2537, 3.2604, 3.26473, 3.26718, 3.26783, 3.26661, 3.2634, 3.25812, 3.25085, 3.24179, 3.23113, 3.21897, 3.20545, 3.19075, 3.17492, 3.15814, 3.1405, 3.12215, 3.10324, 3.08394, 3.06434, 3.04444, 3.02421, 3.00359, 2.98251, 2.96102, 2.93911, 2.91684, 2.89442, 2.87211, 2.85013, 2.8285, 2.80723, 2.7863, 2.76575, 2.74566, 2.72617, 2.70738, 2.68926, 2.67178, 2.65484)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.84297, 2.84677, 2.85048, 2.85414, 2.85778, 2.86148, 2.86523, 2.86905, 2.87294, 2.87691, 2.88097, 2.8851, 2.8893, 2.8936, 2.89804, 2.90262, 2.90732, 2.91215, 2.91715, 2.92233, 2.92762, 2.9329, 2.93806, 2.94304, 2.94785, 2.95245, 2.95692, 2.96132, 2.96584, 2.97054, 2.97534, 2.98007, 2.98474, 2.98963, 2.99524, 3.00201, 3.01021, 3.01991, 3.03106, 3.04338, 3.05652, 3.07003, 3.08363, 3.09737, 3.11169, 3.12738, 3.14542, 3.16678, 3.19235, 3.22292, 3.2589, 3.29947, 3.34237, 3.38394, 3.42042, 3.44955, 3.4711, 3.48657, 3.49787, 3.50652, 3.51331, 3.51866, 3.52265, 3.52516, 3.52606, 3.52521, 3.52259, 3.51828, 3.51242, 3.50509, 3.49641, 3.4864, 3.47515, 3.46277, 3.44931, 3.43489, 3.41964, 3.40375, 3.38733, 3.37038, 3.35289, 3.33483, 3.31614, 3.29673, 3.27654, 3.25559, 3.23406, 3.21229, 3.1906, 3.1691, 3.14778, 3.12655, 3.10541, 3.08446, 3.06387, 3.04372, 3.02398, 3.00454, 2.98533, 2.96638)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.48686, 2.4818, 2.47689, 2.47213, 2.46752, 2.46308, 2.4589, 2.45508, 2.45155, 2.44836, 2.44548, 2.44293, 2.44076, 2.43899, 2.43762, 2.43655, 2.43582, 2.43553, 2.43571, 2.43627, 2.43717, 2.43831, 2.43959, 2.44096, 2.44245, 2.44407, 2.4459, 2.44811, 2.45097, 2.45449, 2.45865, 2.46335, 2.46851, 2.47431, 2.48121, 2.48979, 2.50071, 2.51378, 2.52872, 2.5451, 2.56244, 2.58025, 2.59813, 2.61604, 2.63445, 2.65429, 2.67678, 2.70365, 2.73566, 2.77351, 2.81731, 2.8662, 2.91796, 2.96917, 3.01591, 3.05497, 3.08492, 3.10651, 3.12157, 3.13206, 3.13961, 3.14501, 3.14855, 3.15014, 3.14973, 3.14727, 3.14271, 3.13612, 3.12767, 3.11755, 3.10597, 3.09305, 3.07886, 3.06355, 3.04721, 3.03, 3.01201, 2.99357, 2.97474, 2.95553, 2.93594, 2.91591, 2.89548, 2.87461, 2.85321, 2.83133, 2.80914, 2.78691, 2.76492, 2.74336, 2.72234, 2.70186, 2.68188, 2.66234, 2.64331, 2.62492, 2.60712, 2.58987, 2.57305, 2.55666)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.418, 2.41326, 2.40866, 2.40415, 2.39977, 2.3956, 2.39173, 2.38817, 2.38485, 2.38189, 2.37929, 2.37703, 2.37512, 2.37357, 2.3724, 2.37161, 2.37123, 2.37129, 2.3718, 2.37265, 2.37383, 2.37527, 2.37687, 2.37856, 2.38034, 2.38217, 2.38433, 2.38701, 2.39044, 2.39472, 2.39974, 2.4053, 2.41134, 2.41802, 2.42572, 2.43506, 2.44666, 2.46033, 2.47571, 2.49226, 2.50931, 2.52622, 2.54257, 2.55841, 2.5744, 2.59162, 2.61153, 2.63592, 2.66565, 2.70138, 2.74318, 2.79008, 2.83987, 2.88918, 2.93417, 2.97177, 3.00072, 3.02165, 3.03633, 3.04658, 3.05397, 3.05934, 3.06288, 3.06464, 3.06441, 3.0621, 3.05772, 3.05148, 3.04349, 3.03385, 3.02278, 3.0104, 2.99686, 2.98221, 2.96656, 2.95007, 2.93287, 2.91522, 2.8971, 2.87873, 2.85994, 2.8408, 2.82128, 2.80131, 2.78077, 2.75969, 2.73821, 2.71668, 2.69547, 2.67474, 2.65457, 2.63493, 2.61572, 2.59702, 2.57887, 2.56125, 2.54406, 2.52722, 2.51069, 2.4946)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.23632, 2.23328, 2.23031, 2.22744, 2.22472, 2.22221, 2.22, 2.21809, 2.21649, 2.21521, 2.21429, 2.21374, 2.21362, 2.21397, 2.21489, 2.21635, 2.21837, 2.22095, 2.22415, 2.22791, 2.23199, 2.23603, 2.23978, 2.24319, 2.24646, 2.24984, 2.25364, 2.25823, 2.26398, 2.27089, 2.27864, 2.28663, 2.29453, 2.3026, 2.31158, 2.3222, 2.3348, 2.34926, 2.36514, 2.3816, 2.39766, 2.41241, 2.42555, 2.43748, 2.44942, 2.46303, 2.47993, 2.50152, 2.52877, 2.56248, 2.60301, 2.64947, 2.69953, 2.74941, 2.7948, 2.83264, 2.86184, 2.88333, 2.89896, 2.91041, 2.91892, 2.92524, 2.92962, 2.932, 2.93225, 2.93027, 2.92613, 2.91999, 2.91199, 2.90235, 2.89126, 2.87884, 2.86526, 2.85061, 2.83497, 2.81847, 2.80131, 2.78378, 2.76605, 2.74817, 2.73009, 2.71174, 2.69305, 2.67383, 2.65383, 2.63304, 2.61173, 2.59043, 2.56961, 2.54949, 2.53004, 2.51109, 2.49255, 2.47444, 2.45685, 2.43978, 2.42305, 2.40649, 2.39006, 2.37389)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.93533, 2.93565, 2.93599, 2.93649, 2.93722, 2.93821, 2.93953, 2.94132, 2.94357, 2.94635, 2.94968, 2.95352, 2.95794, 2.96301, 2.96881, 2.97537, 2.98274, 2.99098, 3.00009, 3.00997, 3.02037, 3.03085, 3.04103, 3.0507, 3.05991, 3.06903, 3.07863, 3.0894, 3.10171, 3.11574, 3.13118, 3.14747, 3.16404, 3.18072, 3.19805, 3.21697, 3.23843, 3.26218, 3.28736, 3.31266, 3.33668, 3.35819, 3.37658, 3.39222, 3.40656, 3.42199, 3.44117, 3.46732, 3.5017, 3.5453, 3.5983, 3.65964, 3.7265, 3.79415, 3.85683, 3.90947, 3.94932, 3.97701, 3.99516, 4.00683, 4.01428, 4.01875, 4.0209, 4.02072, 4.01795, 4.01255, 4.00451, 3.994, 3.98126, 3.96659, 3.95029, 3.93246, 3.91326, 3.89286, 3.87148, 3.84928, 3.82639, 3.80305, 3.77962, 3.75628, 3.73285, 3.70912, 3.68485, 3.65989, 3.63403, 3.60723, 3.57968, 3.55181, 3.52422, 3.49743, 3.47158, 3.44649, 3.42192, 3.39776, 3.37404, 3.35068, 3.32751, 3.30448, 3.28137, 3.25845)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.10191, 3.10588, 3.10988, 3.11395, 3.11808, 3.12238, 3.12691, 3.13173, 3.13697, 3.14254, 3.14837, 3.15457, 3.16129, 3.16859, 3.17648, 3.1849, 3.19382, 3.20347, 3.21397, 3.22524, 3.23709, 3.24932, 3.26161, 3.27361, 3.28507, 3.29607, 3.30708, 3.31893, 3.33226, 3.34733, 3.36388, 3.38128, 3.39886, 3.41633, 3.43401, 3.45262, 3.47311, 3.49598, 3.52025, 3.54434, 3.56642, 3.58483, 3.59843, 3.60715, 3.61224, 3.61609, 3.62177, 3.63234, 3.65086, 3.67805, 3.71405, 3.7581, 3.80814, 3.86049, 3.91054, 3.954, 3.98839, 4.01361, 4.03118, 4.04332, 4.05181, 4.05775, 4.06198, 4.0643, 4.06478, 4.06308, 4.05928, 4.05343, 4.04572, 4.03645, 4.02578, 4.01384, 4.00075, 3.98658, 3.9715, 3.95542, 3.93876, 3.92167, 3.90444, 3.88721, 3.86988, 3.85248, 3.83478, 3.81636, 3.79682, 3.77595, 3.75396, 3.73134, 3.70873, 3.68666, 3.66544, 3.64501, 3.62509, 3.60538, 3.58573, 3.56619, 3.5466, 3.52658, 3.50584, 3.48451)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(4.21506, 4.22527, 4.23556, 4.24588, 4.25643, 4.26727, 4.27837, 4.28978, 4.3015, 4.31379, 4.3266, 4.33978, 4.35348, 4.36789, 4.38311, 4.39911, 4.41585, 4.43347, 4.45195, 4.47157, 4.49199, 4.5127, 4.53306, 4.55264, 4.57153, 4.59008, 4.60894, 4.62943, 4.65202, 4.67684, 4.7032, 4.73033, 4.75771, 4.78492, 4.81184, 4.83944, 4.86814, 4.89901, 4.93018, 4.95934, 4.98424, 5.00296, 5.01484, 5.02054, 5.02147, 5.02169, 5.02523, 5.03657, 5.05663, 5.08597, 5.12523, 5.17332, 5.22716, 5.28189, 5.33227, 5.37438, 5.40621, 5.42798, 5.44268, 5.45358, 5.46192, 5.46703, 5.47086, 5.47339, 5.47374, 5.47094, 5.46518, 5.45833, 5.45074, 5.44102, 5.4293, 5.41587, 5.40228, 5.38922, 5.37368, 5.3566, 5.33971, 5.32278, 5.30455, 5.2867, 5.27026, 5.25309, 5.23453, 5.21448, 5.1942, 5.17313, 5.14989, 5.12529, 5.10037, 5.07625, 5.05386, 5.0324, 5.01149, 4.98981, 4.96771, 4.94535, 4.92276, 4.89965, 4.87567, 4.85102)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.89064, 2.89244, 2.89438, 2.89659, 2.89913, 2.90211, 2.90566, 2.90982, 2.91468, 2.92031, 2.92672, 2.93393, 2.94215, 2.95162, 2.96246, 2.97468, 2.98837, 3.00351, 3.02017, 3.03799, 3.05637, 3.07442, 3.09126, 3.10649, 3.12049, 3.13426, 3.14938, 3.1674, 3.18931, 3.21534, 3.24464, 3.27559, 3.30644, 3.33614, 3.36509, 3.39483, 3.42658, 3.45948, 3.49127, 3.51876, 3.53835, 3.547, 3.5435, 3.52941, 3.50883, 3.48751, 3.47102, 3.46452, 3.46957, 3.48671, 3.51552, 3.55417, 3.59944, 3.64683, 3.69145, 3.72932, 3.75847, 3.77923, 3.79343, 3.80307, 3.80985, 3.81487, 3.81816, 3.81992, 3.81981, 3.81779, 3.81395, 3.80847, 3.80162, 3.79364, 3.78474, 3.77509, 3.7647, 3.7537, 3.74201, 3.72972, 3.71702, 3.70437, 3.69211, 3.68038, 3.66899, 3.65755, 3.64566, 3.63274, 3.6181, 3.60131, 3.58258, 3.56287, 3.5435, 3.52541, 3.50878, 3.49314, 3.47783, 3.46234, 3.44632, 3.42949, 3.41136, 3.39146, 3.36959, 3.34622)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.63719, 3.64846, 3.65957, 3.67057, 3.68146, 3.69229, 3.70307, 3.71379, 3.72457, 3.73542, 3.74623, 3.75713, 3.76805, 3.77902, 3.79008, 3.80124, 3.81262, 3.82412, 3.8358, 3.84772, 3.85974, 3.87184, 3.88394, 3.89596, 3.90781, 3.91942, 3.93098, 3.94257, 3.95437, 3.96637, 3.9785, 3.99067, 4.00286, 4.01513, 4.02787, 4.04137, 4.05612, 4.07219, 4.08947, 4.10781, 4.12676, 4.14594, 4.16516, 4.18443, 4.20405, 4.22462, 4.24696, 4.27225, 4.30128, 4.33467, 4.37272, 4.41516, 4.46056, 4.50655, 4.55016, 4.58851, 4.61978, 4.64389, 4.6622, 4.6758, 4.68574, 4.69328, 4.69888, 4.70273, 4.70457, 4.70444, 4.70241, 4.69832, 4.69216, 4.68431, 4.67511, 4.66479, 4.65323, 4.64045, 4.62661, 4.61193, 4.59671, 4.58119, 4.5655, 4.54925, 4.53268, 4.51576, 4.49862, 4.48107, 4.46308, 4.44466, 4.42587, 4.4069, 4.38806, 4.36966, 4.35176, 4.33413, 4.31666, 4.29959, 4.28297, 4.26668, 4.25065, 4.23491, 4.21959, 4.20452)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.88841, 2.89612, 2.90365, 2.91112, 2.91849, 2.9258, 2.93305, 2.94026, 2.94758, 2.95479, 2.96199, 2.96915, 2.97629, 2.98345, 2.99066, 2.99786, 3.00509, 3.01239, 3.01979, 3.02726, 3.03478, 3.04228, 3.04975, 3.05717, 3.0645, 3.07174, 3.07889, 3.08585, 3.09261, 3.09925, 3.10582, 3.1123, 3.11879, 3.12548, 3.13253, 3.14018, 3.14885, 3.15851, 3.16929, 3.18116, 3.19405, 3.20791, 3.22266, 3.23827, 3.25478, 3.27232, 3.29121, 3.31209, 3.33552, 3.36191, 3.39153, 3.42403, 3.45826, 3.49226, 3.52367, 3.55044, 3.57162, 3.58746, 3.59899, 3.60745, 3.61372, 3.61844, 3.62181, 3.62383, 3.62442, 3.62355, 3.6212, 3.6174, 3.61231, 3.60604, 3.59863, 3.59021, 3.58088, 3.57073, 3.55985, 3.54833, 3.53635, 3.52394, 3.51121, 3.49822, 3.48495, 3.47135, 3.45745, 3.44325, 3.42874, 3.41397, 3.39902, 3.38402, 3.36908, 3.35426, 3.3396, 3.3251, 3.31075, 3.29666, 3.28288, 3.26947, 3.25639, 3.24368, 3.23138, 3.21932)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.2865, 2.28699, 2.28749, 2.28799, 2.28851, 2.28908, 2.28977, 2.29066, 2.29165, 2.29279, 2.2941, 2.29556, 2.29717, 2.29893, 2.30087, 2.30301, 2.3054, 2.30801, 2.31098, 2.3142, 2.31759, 2.32107, 2.32462, 2.32821, 2.33184, 2.33549, 2.33914, 2.34275, 2.34643, 2.35016, 2.35399, 2.35796, 2.36215, 2.36678, 2.37228, 2.37903, 2.38759, 2.39795, 2.41014, 2.42413, 2.43975, 2.45682, 2.4752, 2.49481, 2.51578, 2.53837, 2.56322, 2.59134, 2.62334, 2.6599, 2.70126, 2.74683, 2.79483, 2.84228, 2.88563, 2.92194, 2.94992, 2.97009, 2.98427, 2.9942, 3.00128, 3.00649, 3.00995, 3.01171, 3.01165, 3.00967, 3.00581, 3.00016, 2.99281, 2.9839, 2.97368, 2.96225, 2.94969, 2.93613, 2.9217, 2.90655, 2.89077, 2.87453, 2.85801, 2.84116, 2.82403, 2.80653, 2.78868, 2.77049, 2.75187, 2.73291, 2.7137, 2.69445, 2.67542, 2.65667, 2.63822, 2.62009, 2.60229, 2.5849, 2.56798, 2.55165, 2.53597, 2.52102, 2.50662, 2.49281)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.62979, 2.632, 2.63413, 2.63626, 2.63846, 2.64072, 2.64303, 2.64548, 2.648, 2.65065, 2.65346, 2.6564, 2.65947, 2.66264, 2.66592, 2.6694, 2.67302, 2.67689, 2.68095, 2.68514, 2.68946, 2.69387, 2.69828, 2.70267, 2.70697, 2.71114, 2.71522, 2.71923, 2.72323, 2.72725, 2.73128, 2.73533, 2.73948, 2.74393, 2.74898, 2.755, 2.76246, 2.77138, 2.78171, 2.79331, 2.806, 2.81959, 2.83391, 2.84895, 2.86486, 2.88209, 2.90118, 2.92336, 2.94913, 2.97917, 3.01363, 3.0519, 3.09222, 3.13179, 3.16746, 3.19675, 3.21871, 3.23405, 3.24441, 3.25133, 3.25598, 3.25903, 3.26062, 3.26066, 3.25909, 3.25586, 3.25095, 3.24435, 3.23616, 3.22654, 3.2156, 3.20347, 3.19022, 3.17585, 3.16056, 3.14436, 3.12748, 3.11004, 3.09214, 3.07381, 3.05504, 3.03578, 3.01601, 2.99572, 2.97493, 2.95364, 2.93202, 2.91024, 2.8885, 2.86696, 2.84566, 2.82459, 2.80375, 2.78326, 2.7632, 2.74361, 2.72461, 2.70611, 2.6881, 2.67051)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.61033, 2.61247, 2.61469, 2.61696, 2.61926, 2.62165, 2.62417, 2.62684, 2.62977, 2.6329, 2.63616, 2.6396, 2.64323, 2.64709, 2.65115, 2.65541, 2.65986, 2.66458, 2.66962, 2.67491, 2.68041, 2.68605, 2.69175, 2.6974, 2.70302, 2.70861, 2.71415, 2.71969, 2.72523, 2.73082, 2.73648, 2.74224, 2.74813, 2.75434, 2.76115, 2.76893, 2.7783, 2.78926, 2.80179, 2.81573, 2.83079, 2.84675, 2.86347, 2.88089, 2.89914, 2.91863, 2.94004, 2.96454, 2.99285, 3.02579, 3.0637, 3.10612, 3.15131, 3.19623, 3.23717, 3.27093, 3.29592, 3.31265, 3.32292, 3.32865, 3.33137, 3.33212, 3.33113, 3.32841, 3.32376, 3.31713, 3.30857, 3.29814, 3.28594, 3.27217, 3.257, 3.24055, 3.22289, 3.2042, 3.18459, 3.16427, 3.14326, 3.1218, 3.10003, 3.07788, 3.05545, 3.03269, 3.00952, 2.98597, 2.962, 2.93764, 2.91304, 2.8884, 2.86396, 2.83988, 2.8162, 2.79291, 2.77001, 2.74757, 2.72574, 2.70455, 2.68405, 2.6642, 2.645, 2.62642)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.2863, 2.28689, 2.28745, 2.288, 2.28864, 2.2894, 2.29022, 2.29114, 2.29227, 2.29358, 2.29504, 2.29669, 2.29849, 2.30044, 2.30259, 2.30498, 2.30761, 2.31047, 2.31365, 2.31709, 2.3207, 2.32442, 2.32817, 2.33185, 2.33547, 2.33904, 2.34265, 2.3463, 2.35009, 2.35395, 2.35791, 2.36202, 2.36636, 2.37116, 2.37677, 2.38359, 2.39209, 2.40235, 2.4143, 2.42779, 2.4426, 2.45849, 2.47529, 2.49301, 2.51186, 2.53232, 2.55503, 2.58117, 2.61134, 2.64615, 2.6858, 2.72962, 2.77564, 2.82077, 2.86151, 2.89507, 2.92038, 2.93819, 2.95021, 2.95837, 2.96387, 2.96754, 2.96964, 2.97012, 2.96892, 2.9659, 2.961, 2.95439, 2.94621, 2.93656, 2.92568, 2.91365, 2.90054, 2.88649, 2.87157, 2.85599, 2.8398, 2.82325, 2.80637, 2.78922, 2.77176, 2.75396, 2.73582, 2.7173, 2.69838, 2.67907, 2.65953, 2.63997, 2.62056, 2.60142, 2.58261, 2.56414, 2.54602, 2.52828, 2.511, 2.49429, 2.47822, 2.46271, 2.44769, 2.4332)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.51682, 2.51816, 2.51946, 2.52081, 2.52229, 2.52386, 2.52555, 2.52742, 2.52948, 2.53174, 2.5342, 2.53684, 2.53965, 2.54264, 2.54581, 2.54917, 2.55277, 2.55667, 2.56081, 2.56517, 2.56972, 2.57444, 2.57923, 2.58401, 2.58875, 2.59345, 2.59806, 2.60278, 2.60749, 2.61228, 2.61713, 2.62204, 2.62704, 2.6323, 2.63806, 2.64474, 2.65274, 2.66203, 2.67261, 2.68428, 2.69688, 2.71017, 2.72394, 2.73819, 2.75304, 2.76891, 2.78636, 2.8066, 2.83018, 2.85781, 2.88973, 2.92544, 2.96338, 3.00088, 3.03475, 3.06225, 3.08218, 3.09498, 3.10222, 3.1055, 3.10623, 3.10513, 3.1026, 3.09849, 3.09269, 3.08513, 3.07583, 3.06492, 3.05254, 3.03877, 3.02377, 3.00762, 2.99043, 2.97238, 2.95357, 2.93408, 2.91399, 2.89355, 2.87279, 2.85179, 2.83056, 2.80904, 2.78714, 2.7649, 2.7423, 2.71938, 2.69628, 2.67318, 2.65026, 2.62766, 2.60541, 2.58353, 2.56208, 2.54105, 2.52051, 2.50057, 2.48125, 2.46252, 2.44439, 2.42677)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.18439, 2.18363, 2.18281, 2.18202, 2.1813, 2.1807, 2.18027, 2.17998, 2.17983, 2.17997, 2.18033, 2.18091, 2.1817, 2.18273, 2.184, 2.18551, 2.18734, 2.18955, 2.1921, 2.19491, 2.19796, 2.20118, 2.20445, 2.20766, 2.21081, 2.21399, 2.21724, 2.22062, 2.22423, 2.22807, 2.23214, 2.23644, 2.24103, 2.24617, 2.25218, 2.25953, 2.26885, 2.28014, 2.29341, 2.30851, 2.32525, 2.34338, 2.36269, 2.38312, 2.40488, 2.4283, 2.45402, 2.48334, 2.51693, 2.55554, 2.59955, 2.64853, 2.70088, 2.75353, 2.80248, 2.84417, 2.87667, 2.90023, 2.91667, 2.92797, 2.93595, 2.94161, 2.94539, 2.94719, 2.94696, 2.94469, 2.94033, 2.93386, 2.92547, 2.91537, 2.90373, 2.89071, 2.87637, 2.86097, 2.84455, 2.82725, 2.80925, 2.79073, 2.77179, 2.75249, 2.73288, 2.7129, 2.6925, 2.67164, 2.65036, 2.62868, 2.6067, 2.58463, 2.56272, 2.54114, 2.52, 2.49925, 2.4789, 2.45895, 2.43959, 2.42091, 2.40297, 2.38574, 2.36915, 2.3532)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.50203, 2.50432, 2.50668, 2.50898, 2.51126, 2.51357, 2.51599, 2.51853, 2.52127, 2.52408, 2.52702, 2.53004, 2.53321, 2.53654, 2.53999, 2.54362, 2.54737, 2.55137, 2.55555, 2.55997, 2.56457, 2.56925, 2.57389, 2.57842, 2.58289, 2.58734, 2.59172, 2.59607, 2.60041, 2.6048, 2.60925, 2.61382, 2.61853, 2.62351, 2.62903, 2.63549, 2.64341, 2.6528, 2.66363, 2.67575, 2.68893, 2.70291, 2.71754, 2.73282, 2.74896, 2.76644, 2.78589, 2.8084, 2.83457, 2.86514, 2.90035, 2.93959, 2.98124, 3.02253, 3.0602, 3.09151, 3.11519, 3.13183, 3.14299, 3.1504, 3.15522, 3.15832, 3.15992, 3.16, 3.15844, 3.15513, 3.15004, 3.14323, 3.13487, 3.12508, 3.11399, 3.10168, 3.0882, 3.07371, 3.05828, 3.04208, 3.02525, 3.00788, 2.99004, 2.97182, 2.95326, 2.93431, 2.91489, 2.89498, 2.87456, 2.85366, 2.83242, 2.81109, 2.78988, 2.76888, 2.74815, 2.72767, 2.70745, 2.68761, 2.66817, 2.64924, 2.63083, 2.61296, 2.5956, 2.57864)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.4291, 2.4294, 2.42976, 2.43004, 2.43036, 2.43077, 2.43133, 2.43208, 2.43303, 2.43417, 2.43542, 2.43689, 2.43855, 2.44042, 2.44251, 2.44483, 2.44739, 2.45026, 2.45354, 2.45707, 2.46077, 2.46456, 2.46834, 2.47205, 2.47572, 2.47926, 2.48286, 2.48652, 2.4904, 2.49449, 2.49873, 2.50312, 2.50773, 2.51279, 2.51866, 2.52578, 2.53472, 2.54547, 2.55795, 2.57189, 2.58704, 2.60313, 2.61998, 2.63764, 2.65641, 2.6768, 2.69963, 2.7262, 2.75717, 2.7932, 2.83454, 2.8804, 2.92863, 2.97596, 3.01874, 3.05407, 3.08084, 3.09987, 3.113, 3.122, 3.12836, 3.13289, 3.13581, 3.13709, 3.13645, 3.13386, 3.12936, 3.12302, 3.115, 3.10544, 3.09448, 3.08229, 3.06887, 3.05428, 3.03878, 3.02252, 3.00554, 2.98807, 2.97019, 2.95193, 2.9333, 2.91424, 2.89476, 2.87479, 2.85428, 2.83331, 2.81203, 2.79068, 2.76945, 2.74849, 2.72789, 2.70764, 2.68773, 2.66817, 2.64906, 2.63058, 2.61273, 2.59548, 2.57871, 2.56249)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.09, 3.09225, 3.09453, 3.09688, 3.09937, 3.102, 3.10473, 3.10761, 3.11074, 3.1142, 3.11784, 3.12168, 3.1257, 3.12996, 3.13452, 3.13937, 3.1445, 3.15002, 3.15595, 3.16218, 3.16868, 3.1753, 3.18191, 3.18843, 3.19481, 3.2011, 3.20738, 3.21375, 3.22031, 3.22705, 3.23392, 3.24088, 3.24794, 3.25528, 3.26338, 3.27265, 3.28367, 3.29635, 3.31065, 3.32625, 3.34284, 3.36007, 3.37773, 3.39585, 3.4148, 3.43519, 3.45786, 3.48443, 3.51545, 3.55194, 3.59424, 3.64167, 3.69207, 3.74184, 3.78673, 3.82318, 3.84948, 3.8664, 3.87624, 3.8811, 3.88259, 3.88168, 3.87882, 3.87401, 3.86708, 3.85788, 3.84643, 3.83287, 3.81747, 3.80043, 3.78188, 3.76203, 3.74093, 3.7188, 3.69577, 3.67199, 3.64765, 3.62289, 3.59793, 3.57275, 3.54739, 3.52168, 3.4956, 3.46907, 3.4421, 3.41476, 3.38717, 3.35959, 3.33227, 3.30534, 3.27887, 3.25287, 3.22735, 3.20233, 3.17789, 3.15413, 3.13105, 3.10859, 3.08674, 3.06546)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.38922, 3.39664, 3.40399, 3.4113, 3.41858, 3.42588, 3.43325, 3.44067, 3.44816, 3.45586, 3.4637, 3.47156, 3.47952, 3.48763, 3.49592, 3.50443, 3.51321, 3.52217, 3.53144, 3.54099, 3.55075, 3.5606, 3.57043, 3.58016, 3.58972, 3.59919, 3.60859, 3.61796, 3.62743, 3.63709, 3.6469, 3.65674, 3.66661, 3.67669, 3.68728, 3.69897, 3.71219, 3.72697, 3.74327, 3.76068, 3.77885, 3.79743, 3.81616, 3.83508, 3.85458, 3.87527, 3.89808, 3.9245, 3.95524, 3.99115, 4.03248, 4.07853, 4.12756, 4.17656, 4.22181, 4.26014, 4.28994, 4.31172, 4.3271, 4.33793, 4.34572, 4.35141, 4.35524, 4.35707, 4.35688, 4.35457, 4.35027, 4.3441, 4.33605, 4.32624, 4.3149, 4.30218, 4.28825, 4.27321, 4.25709, 4.24012, 4.22238, 4.20434, 4.1858, 4.16696, 4.1477, 4.12807, 4.10804, 4.08755, 4.06649, 4.04482, 4.02274, 4.00052, 3.9784, 3.9566, 3.93521, 3.91414, 3.89337, 3.87291, 3.85288, 3.83339, 3.81432, 3.79572, 3.77751, 3.75961)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.44674, 2.44683, 2.44694, 2.44709, 2.44732, 2.44766, 2.44818, 2.44887, 2.44969, 2.45081, 2.45209, 2.45361, 2.45537, 2.45737, 2.45963, 2.46221, 2.46509, 2.46836, 2.4719, 2.47569, 2.4797, 2.48376, 2.48775, 2.49162, 2.49532, 2.49894, 2.50273, 2.50677, 2.51116, 2.51595, 2.5211, 2.5265, 2.53211, 2.53813, 2.54496, 2.55301, 2.56287, 2.57445, 2.5876, 2.60204, 2.61732, 2.63304, 2.64899, 2.66526, 2.68227, 2.70081, 2.72184, 2.74689, 2.77661, 2.81168, 2.85228, 2.89764, 2.94563, 2.99295, 3.03583, 3.07123, 3.0979, 3.11653, 3.12914, 3.13759, 3.14327, 3.14709, 3.14926, 3.14976, 3.14843, 3.14514, 3.13993, 3.13287, 3.12412, 3.11384, 3.10215, 3.0892, 3.07511, 3.05993, 3.04379, 3.02681, 3.0091, 2.99087, 2.97226, 2.95328, 2.93395, 2.91419, 2.89395, 2.8732, 2.85189, 2.83008, 2.80789, 2.78554, 2.76334, 2.74148, 2.72002, 2.69896, 2.67823, 2.65789, 2.63799, 2.61861, 2.5998, 2.58157, 2.56376, 2.5464)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.45278, 3.46285, 3.47272, 3.48244, 3.49209, 3.5017, 3.51128, 3.52089, 3.53049, 3.54013, 3.54981, 3.55954, 3.5693, 3.57915, 3.58915, 3.59927, 3.60952, 3.61988, 3.63045, 3.64124, 3.6522, 3.66323, 3.67419, 3.68496, 3.69556, 3.70608, 3.71658, 3.72711, 3.73775, 3.74853, 3.75946, 3.77049, 3.78154, 3.79266, 3.80418, 3.81649, 3.83008, 3.84495, 3.86101, 3.87794, 3.89531, 3.91284, 3.93043, 3.94809, 3.96609, 3.98501, 4.00569, 4.02936, 4.05667, 4.08829, 4.12454, 4.16489, 4.20784, 4.25102, 4.29146, 4.32648, 4.35456, 4.3758, 4.39156, 4.4033, 4.41206, 4.41871, 4.4236, 4.4268, 4.42832, 4.42794, 4.42558, 4.42143, 4.41569, 4.40847, 4.39974, 4.38971, 4.37863, 4.36678, 4.35397, 4.34035, 4.32614, 4.31131, 4.29624, 4.28092, 4.26531, 4.24938, 4.23316, 4.21653, 4.19934, 4.18164, 4.16362, 4.14549, 4.12746, 4.10972, 4.09232, 4.07519, 4.05834, 4.04174, 4.02546, 4.00952, 3.99395, 3.97875, 3.96379, 3.94896)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.61809, 2.61982, 2.62147, 2.62313, 2.6248, 2.62654, 2.62843, 2.63046, 2.63271, 2.63515, 2.63774, 2.64052, 2.64352, 2.64676, 2.65025, 2.65403, 2.65815, 2.66259, 2.66738, 2.67252, 2.67784, 2.68316, 2.68832, 2.69327, 2.69808, 2.7028, 2.70766, 2.71279, 2.71837, 2.72433, 2.73063, 2.73719, 2.74394, 2.75094, 2.7586, 2.76734, 2.77777, 2.7898, 2.80322, 2.81769, 2.83273, 2.84796, 2.86315, 2.87844, 2.89427, 2.91152, 2.93114, 2.95474, 2.98297, 3.01649, 3.05545, 3.09915, 3.14565, 3.1918, 3.23396, 3.26917, 3.29612, 3.31542, 3.32879, 3.33812, 3.34477, 3.34956, 3.35275, 3.35426, 3.35403, 3.35191, 3.34791, 3.34211, 3.33465, 3.32573, 3.31554, 3.30413, 3.29156, 3.27797, 3.26343, 3.24815, 3.2322, 3.21584, 3.19911, 3.1821, 3.16477, 3.14708, 3.12894, 3.1103, 3.09111, 3.0714, 3.05129, 3.031, 3.01083, 2.99102, 2.97164, 2.95259, 2.93384, 2.9154, 2.89734, 2.87968, 2.8625, 2.84578, 2.82941, 2.81338)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.76153, 2.76213, 2.7628, 2.76346, 2.76422, 2.76512, 2.76617, 2.7674, 2.76882, 2.77056, 2.77252, 2.77478, 2.77732, 2.78015, 2.78333, 2.78688, 2.79082, 2.7952, 2.80007, 2.80528, 2.81074, 2.81628, 2.82171, 2.82695, 2.83203, 2.83702, 2.84224, 2.84787, 2.85403, 2.86083, 2.86817, 2.87587, 2.88384, 2.89214, 2.90118, 2.91152, 2.92383, 2.93798, 2.95368, 2.97042, 2.98762, 3.00475, 3.02152, 3.03805, 3.05496, 3.07328, 3.09424, 3.11972, 3.15051, 3.18736, 3.23047, 3.27916, 3.33131, 3.38344, 3.43146, 3.47184, 3.50285, 3.525, 3.54018, 3.55037, 3.55727, 3.56196, 3.56467, 3.56536, 3.56399, 3.56046, 3.55474, 3.54693, 3.53719, 3.52573, 3.51274, 3.4984, 3.48284, 3.46619, 3.44846, 3.42986, 3.41053, 3.39073, 3.37065, 3.35027, 3.32963, 3.30859, 3.28707, 3.26499, 3.24232, 3.21907, 3.19541, 3.1716, 3.14798, 3.12478, 3.1021, 3.07993, 3.0582, 3.03689, 3.01599, 2.99552, 2.97558, 2.95612, 2.93704, 2.91837)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.34749, 3.35503, 3.36246, 3.36992, 3.37733, 3.38473, 3.39223, 3.39981, 3.40747, 3.4153, 3.42323, 3.43131, 3.43954, 3.44798, 3.45662, 3.46542, 3.4744, 3.48371, 3.49328, 3.50316, 3.51325, 3.52341, 3.53349, 3.54342, 3.55318, 3.56283, 3.57248, 3.58235, 3.59259, 3.60327, 3.61425, 3.62535, 3.63647, 3.64772, 3.65945, 3.67207, 3.68626, 3.70188, 3.71854, 3.7358, 3.75304, 3.76979, 3.78574, 3.80091, 3.81593, 3.83176, 3.84979, 3.87174, 3.89838, 3.93043, 3.96797, 4.01026, 4.05538, 4.10031, 4.14154, 4.17609, 4.20253, 4.22125, 4.23392, 4.24245, 4.24833, 4.25235, 4.25465, 4.25526, 4.25404, 4.25089, 4.24588, 4.23913, 4.23078, 4.22098, 4.20989, 4.19761, 4.18439, 4.1702, 4.15517, 4.13937, 4.12304, 4.1064, 4.08956, 4.07249, 4.05523, 4.03769, 4.01977, 4.00131, 3.98219, 3.96259, 3.94262, 3.92245, 3.90239, 3.88264, 3.86336, 3.84447, 3.82581, 3.80741, 3.78926, 3.77143, 3.75382, 3.7364, 3.71913, 3.70207)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.86543, 3.87217, 3.87899, 3.88595, 3.89309, 3.90047, 3.90805, 3.91575, 3.92366, 3.93195, 3.94064, 3.94957, 3.9587, 3.96805, 3.97773, 3.98786, 3.99844, 4.00936, 4.02065, 4.03238, 4.04441, 4.05661, 4.06886, 4.081, 4.09296, 4.10488, 4.1168, 4.12904, 4.1417, 4.15476, 4.16811, 4.18159, 4.195, 4.20827, 4.22183, 4.23607, 4.25172, 4.2685, 4.28633, 4.30451, 4.32225, 4.33905, 4.35464, 4.36909, 4.38306, 4.39755, 4.41426, 4.43485, 4.46015, 4.49106, 4.52807, 4.57026, 4.61538, 4.66003, 4.70025, 4.73279, 4.75613, 4.7707, 4.77813, 4.78081, 4.78058, 4.7779, 4.77333, 4.76669, 4.75798, 4.7472, 4.73417, 4.71906, 4.70219, 4.68367, 4.66366, 4.64241, 4.61988, 4.5961, 4.57132, 4.54599, 4.52021, 4.49376, 4.46722, 4.44044, 4.41347, 4.38621, 4.35852, 4.33036, 4.30158, 4.27217, 4.24226, 4.21219, 4.1824, 4.15317, 4.12448, 4.09623, 4.06837, 4.04096, 4.01399, 3.98755, 3.96163, 3.93614, 3.91103, 3.88612)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.4571, 2.45753, 2.458, 2.45851, 2.45914, 2.45993, 2.46092, 2.46218, 2.4637, 2.46556, 2.46773, 2.47015, 2.47292, 2.47609, 2.47969, 2.48381, 2.48834, 2.49349, 2.49913, 2.50529, 2.51177, 2.51831, 2.52462, 2.53054, 2.53614, 2.54174, 2.54766, 2.55419, 2.56157, 2.56979, 2.57867, 2.58797, 2.59743, 2.60706, 2.61732, 2.62876, 2.64214, 2.6574, 2.67399, 2.6912, 2.7082, 2.72422, 2.73887, 2.75242, 2.76577, 2.78041, 2.79803, 2.82075, 2.8494, 2.88464, 2.92668, 2.97457, 3.02604, 3.0775, 3.12474, 3.16434, 3.19473, 3.21655, 3.23181, 3.24257, 3.25032, 3.25612, 3.26017, 3.26243, 3.26276, 3.26105, 3.2573, 3.25163, 3.24417, 3.23516, 3.22476, 3.2131, 3.2002, 3.18622, 3.17128, 3.15548, 3.13896, 3.12201, 3.10479, 3.08731, 3.06956, 3.05141, 3.03278, 3.01352, 2.99348, 2.97264, 2.95113, 2.92931, 2.90764, 2.88643, 2.86575, 2.84549, 2.82557, 2.80593, 2.78655, 2.76754, 2.74893, 2.73054, 2.71234, 2.6943)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.88306, 2.88677, 2.89044, 2.89414, 2.89791, 2.90176, 2.90573, 2.90989, 2.9143, 2.91903, 2.92394, 2.92904, 2.93437, 2.94003, 2.94609, 2.95257, 2.95938, 2.96665, 2.97443, 2.98265, 2.99116, 2.99972, 3.00809, 3.01613, 3.02389, 3.03147, 3.03931, 3.0477, 3.05682, 3.06678, 3.07739, 3.08834, 3.09939, 3.11056, 3.12223, 3.13496, 3.14937, 3.16535, 3.18243, 3.1999, 3.21697, 3.23295, 3.24754, 3.26104, 3.27428, 3.28862, 3.30558, 3.32734, 3.35473, 3.38852, 3.42889, 3.47512, 3.52502, 3.57505, 3.62108, 3.65958, 3.68876, 3.70925, 3.72293, 3.73192, 3.73779, 3.74156, 3.74356, 3.74368, 3.74189, 3.73809, 3.73223, 3.72441, 3.71482, 3.70372, 3.69125, 3.67759, 3.6629, 3.64718, 3.63051, 3.61314, 3.59514, 3.57685, 3.55838, 3.53986, 3.52109, 3.50195, 3.48234, 3.46223, 3.44151, 3.42011, 3.39813, 3.3759, 3.35383, 3.33214, 3.311, 3.29039, 3.2701, 3.25002, 3.23018, 3.21065, 3.19142, 3.17242, 3.15349, 3.1347)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.29881, 3.30738, 3.31586, 3.32423, 3.33257, 3.34094, 3.34939, 3.35796, 3.36666, 3.37546, 3.38441, 3.39341, 3.40255, 3.41191, 3.4215, 3.43138, 3.44156, 3.45203, 3.46293, 3.47418, 3.48569, 3.49729, 3.50876, 3.51993, 3.53083, 3.54155, 3.55232, 3.56349, 3.57531, 3.58782, 3.60084, 3.61404, 3.6271, 3.63998, 3.65304, 3.66685, 3.68195, 3.69809, 3.71473, 3.73111, 3.74636, 3.75971, 3.77075, 3.77971, 3.7876, 3.79579, 3.80605, 3.82038, 3.83956, 3.86416, 3.8941, 3.92865, 3.96614, 4.00387, 4.03878, 4.06834, 4.0913, 4.108, 4.11974, 4.12825, 4.13442, 4.1389, 4.1419, 4.14347, 4.14354, 4.14196, 4.13884, 4.13427, 4.12834, 4.1212, 4.11295, 4.10376, 4.09368, 4.08281, 4.07122, 4.05897, 4.0463, 4.03331, 4.02036, 4.00725, 3.99401, 3.98042, 3.96649, 3.95204, 3.93691, 3.921, 3.90441, 3.88754, 3.87076, 3.85427, 3.8382, 3.82241, 3.80682, 3.79124, 3.77567, 3.7601, 3.74453, 3.72884, 3.71288, 3.69671)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.70628, 2.70826, 2.71029, 2.7124, 2.71465, 2.71706, 2.71968, 2.7226, 2.72576, 2.72931, 2.73311, 2.73725, 2.74177, 2.74672, 2.75211, 2.75797, 2.76431, 2.77121, 2.77869, 2.78675, 2.79528, 2.80399, 2.81261, 2.82096, 2.82907, 2.83711, 2.84537, 2.85443, 2.86451, 2.87581, 2.88813, 2.90097, 2.91383, 2.9266, 2.93965, 2.95375, 2.96952, 2.98665, 3.0044, 3.02172, 3.03738, 3.05037, 3.06017, 3.06705, 3.07218, 3.07748, 3.08516, 3.09784, 3.11655, 3.14198, 3.17415, 3.21218, 3.25394, 3.29617, 3.33508, 3.3674, 3.39158, 3.40791, 3.41812, 3.42408, 3.42725, 3.42859, 3.42833, 3.4264, 3.42278, 3.41737, 3.41016, 3.40127, 3.3909, 3.37923, 3.36642, 3.35262, 3.33794, 3.32251, 3.30636, 3.28961, 3.27242, 3.25499, 3.23759, 3.22027, 3.2029, 3.18537, 3.1675, 3.14911, 3.13001, 3.11008, 3.08947, 3.06859, 3.04795, 3.02791, 3.00854, 2.98973, 2.97128, 2.95307, 2.93505, 2.91717, 2.89927, 2.88124, 2.86292, 2.84446)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.66118, 2.66172, 2.66232, 2.66297, 2.66379, 2.66482, 2.66612, 2.66783, 2.66992, 2.67245, 2.6754, 2.67887, 2.68287, 2.68748, 2.69285, 2.699, 2.70596, 2.71377, 2.7224, 2.73172, 2.74133, 2.7508, 2.75974, 2.76798, 2.77569, 2.78335, 2.79168, 2.8015, 2.81312, 2.82666, 2.8417, 2.85757, 2.87361, 2.88955, 2.90581, 2.92322, 2.94266, 2.96368, 2.98534, 3.00628, 3.02501, 3.04033, 3.05169, 3.05963, 3.06587, 3.0729, 3.08344, 3.10045, 3.12506, 3.15795, 3.19915, 3.24763, 3.30094, 3.35529, 3.40621, 3.44979, 3.48393, 3.50877, 3.52604, 3.53787, 3.54612, 3.552, 3.55575, 3.55741, 3.55684, 3.55402, 3.54897, 3.54179, 3.53276, 3.52211, 3.51003, 3.49665, 3.48213, 3.46661, 3.45017, 3.43291, 3.41501, 3.39675, 3.37846, 3.36014, 3.34179, 3.3232, 3.30417, 3.2845, 3.26391, 3.2423, 3.21985, 3.19706, 3.17455, 3.1528, 3.13189, 3.11167, 3.09195, 3.07253, 3.05325, 3.03411, 3.01496, 2.99568, 2.97606, 2.95627)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.4916, 2.49183, 2.49209, 2.49243, 2.49296, 2.49373, 2.4948, 2.49621, 2.498, 2.50019, 2.50281, 2.50585, 2.50937, 2.51343, 2.51811, 2.52347, 2.52952, 2.53624, 2.54376, 2.55204, 2.5609, 2.56985, 2.57845, 2.58651, 2.59404, 2.6012, 2.60856, 2.61684, 2.62663, 2.63816, 2.65126, 2.66526, 2.67947, 2.69353, 2.70763, 2.72247, 2.73873, 2.75684, 2.77591, 2.79484, 2.81217, 2.82651, 2.83701, 2.84369, 2.84777, 2.85143, 2.85721, 2.8674, 2.88453, 2.90922, 2.94176, 2.98159, 3.02678, 3.07393, 3.11882, 3.15761, 3.18803, 3.20995, 3.22481, 3.23456, 3.24101, 3.24511, 3.24748, 3.2482, 3.24712, 3.24408, 3.2391, 3.23231, 3.22388, 3.21398, 3.20279, 3.19048, 3.17721, 3.16304, 3.14806, 3.13227, 3.11587, 3.09905, 3.0821, 3.06518, 3.04825, 3.03118, 3.0138, 2.99589, 2.97714, 2.95731, 2.93645, 2.915, 2.89362, 2.87283, 2.85283, 2.8335, 2.81459, 2.79591, 2.77743, 2.75912, 2.74081, 2.72225, 2.70332, 2.6841)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(3.14626, 3.15166, 3.15703, 3.16244, 3.16791, 3.17348, 3.17923, 3.18521, 3.1914, 3.19792, 3.20466, 3.21167, 3.21896, 3.22665, 3.23481, 3.24345, 3.25255, 3.26199, 3.27205, 3.28263, 3.29378, 3.30525, 3.31673, 3.32801, 3.33896, 3.34976, 3.36068, 3.37238, 3.38527, 3.39963, 3.4152, 3.43129, 3.44727, 3.46298, 3.47899, 3.49632, 3.51585, 3.5372, 3.55932, 3.58079, 3.59985, 3.61481, 3.62461, 3.62933, 3.63054, 3.63101, 3.63398, 3.64281, 3.65859, 3.68207, 3.71307, 3.75049, 3.792, 3.83423, 3.87342, 3.90643, 3.93181, 3.95001, 3.96265, 3.97146, 3.9777, 3.98224, 3.98529, 3.98674, 3.9865, 3.98449, 3.98077, 3.97541, 3.96853, 3.96031, 3.95092, 3.94047, 3.92904, 3.91669, 3.9035, 3.88954, 3.87495, 3.86015, 3.84524, 3.83036, 3.81533, 3.80008, 3.7844, 3.76797, 3.75045, 3.73165, 3.71175, 3.69136, 3.67117, 3.65168, 3.63298, 3.61483, 3.59695, 3.57915, 3.56142, 3.54365, 3.52563, 3.50705, 3.48765, 3.46769)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.57992, 2.5804, 2.58099, 2.58175, 2.58266, 2.58381, 2.5853, 2.58719, 2.58949, 2.59225, 2.59546, 2.59916, 2.60344, 2.60844, 2.61426, 2.6209, 2.6283, 2.6366, 2.64579, 2.65571, 2.66593, 2.67596, 2.68532, 2.69384, 2.70178, 2.70963, 2.71821, 2.72828, 2.74035, 2.75449, 2.77031, 2.78703, 2.8038, 2.82023, 2.83676, 2.85417, 2.87346, 2.8941, 2.91494, 2.93442, 2.95082, 2.96273, 2.96953, 2.97185, 2.97162, 2.97162, 2.97492, 2.98472, 3.00209, 3.02779, 3.06168, 3.10263, 3.14821, 3.19467, 3.23772, 3.27377, 3.30103, 3.31999, 3.33247, 3.34044, 3.34554, 3.34879, 3.35034, 3.35024, 3.34828, 3.34443, 3.33876, 3.3314, 3.32251, 3.31228, 3.30093, 3.28863, 3.27554, 3.2617, 3.24715, 3.23194, 3.21627, 3.20037, 3.18462, 3.1691, 3.15364, 3.13802, 3.122, 3.10534, 3.08777, 3.06908, 3.04942, 3.02933, 3.00947, 2.99033, 2.97211, 2.95464, 2.93756, 2.92062, 2.90367, 2.88668, 2.86951, 2.8518, 2.83347, 2.81473)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.56875, 2.56923, 2.56985, 2.5706, 2.5715, 2.57268, 2.5742, 2.5761, 2.57841, 2.58129, 2.58459, 2.58841, 2.59283, 2.59793, 2.60381, 2.61049, 2.61803, 2.62646, 2.6358, 2.64594, 2.65656, 2.66712, 2.67713, 2.68634, 2.69486, 2.70325, 2.7124, 2.72326, 2.73624, 2.75153, 2.76861, 2.78661, 2.80469, 2.82242, 2.84016, 2.8588, 2.87925, 2.901, 2.92268, 2.94262, 2.9589, 2.96995, 2.97513, 2.97519, 2.97228, 2.96949, 2.97017, 2.97767, 2.99317, 3.01732, 3.04997, 3.08988, 3.13449, 3.18006, 3.22227, 3.25753, 3.28414, 3.30259, 3.31466, 3.32223, 3.32701, 3.32995, 3.33129, 3.331, 3.32899, 3.32509, 3.31935, 3.31195, 3.30309, 3.29304, 3.28196, 3.26999, 3.2572, 3.24373, 3.22963, 3.21494, 3.19986, 3.18464, 3.16959, 3.15474, 3.14004, 3.12525, 3.11007, 3.0942, 3.07733, 3.05928, 3.0402, 3.02069, 3.00145, 2.98301, 2.96551, 2.9487, 2.93226, 2.91592, 2.89952, 2.88291, 2.86595, 2.84836, 2.82998, 2.81111)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.65884, 2.65943, 2.66023, 2.66108, 2.66215, 2.6636, 2.6655, 2.66787, 2.6707, 2.67405, 2.67793, 2.68247, 2.68779, 2.69399, 2.70113, 2.70924, 2.71836, 2.72863, 2.73998, 2.75222, 2.76488, 2.7773, 2.78888, 2.79945, 2.80927, 2.81894, 2.82961, 2.84233, 2.8578, 2.87611, 2.89671, 2.91843, 2.94011, 2.96121, 2.98209, 3.00378, 3.02727, 3.05186, 3.07592, 3.09723, 3.11338, 3.12235, 3.12336, 3.11738, 3.10714, 3.09663, 3.08976, 3.09058, 3.10028, 3.11944, 3.14776, 3.18386, 3.22511, 3.26766, 3.30724, 3.34036, 3.36529, 3.38239, 3.39337, 3.40012, 3.4042, 3.40646, 3.4072, 3.4064, 3.40391, 3.39969, 3.39374, 3.38624, 3.37745, 3.36758, 3.35682, 3.34528, 3.33315, 3.32046, 3.30723, 3.29347, 3.27941, 3.26533, 3.25161, 3.23831, 3.22525, 3.21218, 3.19873, 3.18455, 3.16919, 3.15241, 3.13437, 3.11574, 3.09745, 3.08013, 3.0639, 3.04851, 3.03351, 3.01851, 3.00327, 2.98759, 2.97121, 2.95374, 2.93514, 2.91564)), .Names = c("args", "vals")), structure(list(args = c(850, 852.020202020202, 854.040404040404, 856.060606060606, 858.080808080808, 860.10101010101, 862.121212121212, 864.141414141414, 866.161616161616, 868.181818181818, 870.20202020202, 872.222222222222, 874.242424242424, 876.262626262626, 878.282828282828, 880.30303030303, 882.323232323232, 884.343434343434, 886.363636363636, 888.383838383838, 890.40404040404, 892.424242424242, 894.444444444444, 896.464646464646, 898.484848484848, 900.50505050505, 902.525252525253, 904.545454545455, 906.565656565657, 908.585858585859, 910.606060606061, 912.626262626263, 914.646464646465, 916.666666666667, 918.686868686869, 920.707070707071, 922.727272727273, 924.747474747475, 926.767676767677, 928.787878787879, 930.808080808081, 932.828282828283, 934.848484848485, 936.868686868687, 938.888888888889, 940.909090909091, 942.929292929293, 944.949494949495, 946.969696969697, 948.989898989899, 951.010101010101, 953.030303030303, 955.050505050505, 957.070707070707, 959.090909090909, 961.111111111111, 963.131313131313, 965.151515151515, 967.171717171717, 969.191919191919, 971.212121212121, 973.232323232323, 975.252525252525, 977.272727272727, 979.292929292929, 981.313131313131, 983.333333333333, 985.353535353535, 987.373737373737, 989.393939393939, 991.414141414141, 993.434343434343, 995.454545454545, 997.474747474747, 999.49494949495, 1001.51515151515, 1003.53535353535, 1005.55555555556, 1007.57575757576, 1009.59595959596, 1011.61616161616, 1013.63636363636, 1015.65656565657, 1017.67676767677, 1019.69696969697, 1021.71717171717, 1023.73737373737, 1025.75757575758, 1027.77777777778, 1029.79797979798, 1031.81818181818, 1033.83838383838, 1035.85858585859, 1037.87878787879, 1039.89898989899, 1041.91919191919, 1043.93939393939, 1045.9595959596, 1047.9797979798, 1050), vals = c(2.89064, 2.89244, 2.89438, 2.89659, 2.89913, 2.90211, 2.90566, 2.90982, 2.91468, 2.92031, 2.92672, 2.93393, 2.94215, 2.95162, 2.96246, 2.97468, 2.98837, 3.00351, 3.02017, 3.03799, 3.05637, 3.07442, 3.09126, 3.10649, 3.12049, 3.13426, 3.14938, 3.1674, 3.18931, 3.21534, 3.24464, 3.27559, 3.30644, 3.33614, 3.36509, 3.39483, 3.42658, 3.45948, 3.49127, 3.51876, 3.53835, 3.547, 3.5435, 3.52941, 3.50883, 3.48751, 3.47102, 3.46452, 3.46957, 3.48671, 3.51552, 3.55417, 3.59944, 3.64683, 3.69145, 3.72932, 3.75847, 3.77923, 3.79343, 3.80307, 3.80985, 3.81487, 3.81816, 3.81992, 3.81981, 3.81779, 3.81395, 3.80847, 3.80162, 3.79364, 3.78474, 3.77509, 3.7647, 3.7537, 3.74201, 3.72972, 3.71702, 3.70437, 3.69211, 3.68038, 3.66899, 3.65755, 3.64566, 3.63274, 3.6181, 3.60131, 3.58258, 3.56287, 3.5435, 3.52541, 3.50878, 3.49314, 3.47783, 3.46234, 3.44632, 3.42949, 3.41136, 3.39146, 3.36959, 3.34622)), .Names = c("args", "vals"))), labels = list("large", "large", "small", "small", "large", "large", "large", "small", "small", "small", "large", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "small", "large", "small", "small", "small", "small", "small", "small", "small", "large", "large", "large", "large", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "large", "small", "small", "small", "small", "small", "small", "small", "small", "large", "large", "large", "large", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "small", "large", "large", "large", "large", "large", "large", "large", "large", "large")), class = "functional") ) ddalpha/MD50000644000176200001440000002525013163005153012160 0ustar liggesusersecc8879c1b825f0b7ef4be0ca0958efc *DESCRIPTION 96f51bc094ba4e33578e2cfd7acc440b *NAMESPACE 008c993dd46205f9eb1107dceb0d1dde *R/compclassf.r 9fb15a82b70daf70ac9ab2b44b44b479 *R/dataf.geneexp.r aad0191b048cdad0cc180220d958bd78 *R/dataf.growth.r 4cc1a0c89f6470bb73d96411b92a6e89 *R/dataf.medflies.r 3581666a57fa82ee92f5fbb36bd42c77 *R/dataf.population.r 7e21c38db2ecb572c9f813b35af81a0f *R/dataf.population2010.r 46e95ccbd59054017d1af41d97ef5811 *R/dataf.sim.r 2292382199a756abdbbfc2ee50ceaaf3 *R/dataf.tecator.r ddd3cd482768bf955054cb19a2b9a047 *R/ddalpha-internal.r 8287d32bb6c470b743e99de669783aa5 *R/ddalpha.classify.r da8e0f853b7b11cbc19e81a0075708eb *R/ddalpha.test.r 78c879d3170c163c3c76925a355abca8 *R/ddalpha.train.r 479a49735ba5e71c1df9eaaf9ccbd8de *R/ddalphaf.r 879b9c2af109e8ecfa82dc16276b357e *R/ddalphaf.test.r 98d0d1cdb0ee71d79a3eafea5c41e495 *R/depth.contours.r 7d062b4f3cd71de66ecd18cac78476d1 *R/depth.fd.R 91767c731df04920c2cf1589516b55ad *R/depth.graph.r a266a2fd08f235018a01214b982cedc4 *R/depth.halfspace.r 56aa887d9dfaa73def26f94a8e6acfb9 *R/depth.potential.r faccca44d8906fda6e17b12cb53148c0 *R/depth.projection.r 88e5c7f27f6f8001618652b43343b0ef *R/depth.r 27a3a8babba7fb393d4ee958be77cd2b *R/depth.simplicial.r 79479df7ba68d46e17d3fc086d3bc5d1 *R/depth.simplicialVolume.r 3c2792fd16a5818678019c35006d3572 *R/depth.space.zonoid.r aa8c0b2e1ca127e5aaeb44027a8b696a *R/depth.spatial.r d44fa5d8796d6ef25624c151861eae60 *R/depth.zonoid.r dcea368950ddbd6069915149b9058c27 *R/depthf.r c8b3ba2f38ee525805ab489cd56258a6 *R/dknn.R 5aabf9e5de6a1d24dfd4a176ca70ed50 *R/draw.ddplot.r 1ac3cc033e9681db49f1260b6b586be2 *R/getdata.R 551552b2a55dad12a8c8f7c436cd4166 *R/is.in.convex.r f52e72f811f9fdc6a292499501ab8fba *R/knnaff.r 08479c1c79779872a6e8781faff7a35f *R/lda.r 7313a981d378f0a972f2edfcd3754380 *R/mahalanobis.scaling.r 836cc2095f092877501f85a55693c627 *R/plot.functional.r 6429f1288f6ae2ee1c87840587fa6124 *R/qda.r fbdd9a6013e51e0fd9429b3cfa34446a *R/routines.r 0f31c8fcc4540f3b1a1f0fa1741291f0 *R/separator.polynomial.r 420701b3922eaa282b7cd8c26c01b789 *data/baby.txt.gz ccfe61945a3f683276ce92a6e8d4dc47 *data/banknoten.txt.gz 125cc90ae3153b05d315ceda1ea03b44 *data/biomed.txt.gz 5e7adc223dee633a725d3c69d5dab2eb *data/bloodtransfusion.txt.gz b08e025d2e846beabbea7e2db6d3dede *data/breast_cancer_wisconsin.txt.gz 63739c1a8eda9082507fea3ea9c678b9 *data/bupa.txt.gz c184e7e1f86eedc62d070bcc772fc909 *data/chemdiab_1vs2.txt.gz 5a0c6cd6de59e0d819788f47232b054f *data/chemdiab_1vs3.txt.gz 6151869a605ffc659b1ed46015c142a3 *data/chemdiab_2vs3.txt.gz 74fc808c682a4c536157b3365dbd05bc *data/cloud.txt.gz 0188f9341eb0d4654e085163f98144a4 *data/crabB_MvsF.txt.gz 70ec8accf3940470a48ba45b1bd21eb2 *data/crabF_BvsO.txt.gz 517cde82c1591e08f9cfe7d46c482458 *data/crabM_BvsO.txt.gz 1011d03a9b30ef3b303496d930b0792a *data/crabO_MvsF.txt.gz 2f827beb1b109cad8721de6579949c78 *data/crab_BvsO.txt.gz 1680ac8abdd658b0f9bacc89ef14fe82 *data/crab_MvsF.txt.gz 00f13801e618fbe2d9d9374195bd26c6 *data/cricket_CvsP.txt.gz ebb6ba34d97afd984bf0ded9cdb74594 *data/diabetes.txt.gz 63ead66c38660fe9f735b348bbeacf3b *data/ecoli_cpvsim.txt.gz 50a3d7aafa9126d67fd7834034b731c2 *data/ecoli_cpvspp.txt.gz 19e9106212f5a84f63cbf7a6936edaab *data/ecoli_imvspp.txt.gz 7b44ec9a513f704ebc08c7993e4667da *data/gemsen_MvsF.txt.gz a37f50b8b2b390ed5fd465644dba906d *data/glass.txt.gz be7c33db1e2e1e1a4fde3eb255391221 *data/groessen_MvsF.txt.gz a44f33c1ecb9dfc67ed579dbb34ac74e *data/haberman.txt.gz bab49611b881a6e18fbee5bd510d4ea3 *data/heart.txt.gz 1b73fda3ae015c840ee55aa3c6a14daa *data/hemophilia.txt.gz 7f2c914ed84792e160552a231f31f477 *data/indian_liver_patient_1vs2.txt.gz f099f50e2f38395ad670af1c60066ad7 *data/indian_liver_patient_FvsM.txt.gz 6dff93a4bad8b490185362d84a09d2a0 *data/iris_setosavsversicolor.txt.gz 8fb455f8fd8dfe7a85e67f5fda6507a5 *data/iris_setosavsvirginica.txt.gz e0e5e7af15b61e2791938e0388d68d71 *data/iris_versicolorvsvirginica.txt.gz 00486abc989444ea94f76ab0adabf66f *data/irish_ed_MvsF.txt.gz 99265bd2ff8eecd81ebed30476175236 *data/kidney.txt.gz 15ddfeb5f6233b10ad15e18e2c2a2faa *data/pima.txt.gz d3dcebf7e7a7d978ca7d0971ecfe8ae2 *data/plasma_retinol_MvsF.txt.gz 9e2e11df178d8339e9ed917c721e6c1f *data/segmentation.txt.gz bdeb17db9afe85fd9a2fe1a38b1e7469 *data/socmob_IvsNI.txt.gz 6fc9afd1acd58cfc69026e65ebdae342 *data/socmob_WvsB.txt.gz 0901f964192f94c2a5901804228379cc *data/tae.txt.gz 2f43e05f8c897e8c4e310002647a69c8 *data/tennis_MvsF.txt.gz 26d1fde06974fc2082c88fb00846b989 *data/tips_DvsN.txt.gz 9cc05f785d004dc0c328841d9e156f98 *data/tips_MvsF.txt.gz 1b3b8dad44d1bb6054d18ae7227175e5 *data/uscrime_SvsN.txt.gz 849868cfd89118c21a8664415c10843e *data/vertebral_column.txt.gz 40b4cf81044f67f59a0b1392394b6912 *data/veteran_lung_cancer.txt.gz 09f6e2e73f011736d3c0eae95522e748 *data/vowel_MvsF.txt.gz f00ffe449bd008d028a2a7f1a3e1b130 *data/wine_1vs2.txt.gz d4e6b368252e7b2c40b8bcbabbc97cd8 *data/wine_1vs3.txt.gz 285c2a26aaff446ba2e3aea50278801f *data/wine_2vs3.txt.gz a64312f2dabeecac67fc667e6f94e5c8 *inst/CITATION 1efd56e83b3f48a22fe6e03dfa4910a8 *man/Cmetric.Rd f7d675e4b1d55bdf63c624bbc942935d *man/CustomMethods.Rd efa17d97fa4897ac5f7848448fdbd6a8 *man/FKS.Rd 8d2ad984642691545b5e151a47f21b6c *man/L2metric.Rd 28b11620ba159a6fd916b328445bde2e *man/compclassf.classify.Rd 521c777c8941e2ab1889b8100f208ce5 *man/compclassf.train.Rd 6f6ca2c25aa1aec6284faad616cb6f20 *man/dataf..Rd 50ea595802a863de966abf62757663ab *man/dataf.geneexp.Rd 7f1f1c012df6a58ca452c0b42553c9bc *man/dataf.growth.Rd 7f794348881aafef6f84e312bf1c6651 *man/dataf.medflies.Rd 3579d74ced81ad6717c3caf59e45ca44 *man/dataf.population.Rd fac8c007b22b93b09f508b584c7a365c *man/dataf.population2010.Rd 06e1dee90af1a69866d77273cf49e53f *man/dataf.sim.1.CFF07.Rd 805f3f0a524ba6f4388e43b6ba4f7a76 *man/dataf.sim.2.CFF07.Rd 13c1661b075697aff667fa1f6f71b6f4 *man/dataf.tecator.Rd dbc923645aebf7e6be2a6c3fba124d99 *man/dataf2rawfd.Rd a4ee2b544f90e91ac71f5c4adeee0dcb *man/ddalpha-package.Rd 0696730fe876b622bd70549f3b39131b *man/ddalpha.classify.Rd 2b1b7cc4433374af973733782c45e225 *man/ddalpha.getErrorRateCV.Rd 5acb9396ca92a50d5fa54ed68895e23f *man/ddalpha.getErrorRatePart.Rd 51f3aed347816ce02b5f23cbf65154a5 *man/ddalpha.test.Rd 95b6f1c3b31e4802f8ab34850e5d32c8 *man/ddalpha.train.Rd 299d4099f44d5a06c210f991784a0fc6 *man/ddalphaf.classify.Rd d3fd03f7e2c56e943c0c3e9687585cc3 *man/ddalphaf.getErrorRateCV.Rd 5f354ee521ee9fcaaeeadffbdaabc1c9 *man/ddalphaf.getErrorRatePart.Rd c343dbc3bc4d0e4e53d472f554ff3607 *man/ddalphaf.test.Rd 4b6ffe1cdd0cd00149470c300275bc0b *man/ddalphaf.train.Rd 4bd21c9209ea033ac60615646bbff72d *man/depth..Rd 1a7f56172ae085fd37ea3eb373701847 *man/depth.Mahalanobis.Rd cee54f39836dbaefc0dd4d334dedc736 *man/depth.contours.Rd a79b0f4b9c56571c270b10b449b5a8b6 *man/depth.contours.ddalpha.Rd bab80846e3b9eddbe8a967ee441f8650 *man/depth.graph.Rd 4f360c741c7bd04f879f1abfba6e7511 *man/depth.halfspace.Rd 496500fa8e84bcc1595ec091255a5e1f *man/depth.potential.Rd d5f002dd017d7f4146002565a8441e67 *man/depth.projection.Rd aa4cd5ba8100d7195ba61b9b6d0165c9 *man/depth.sample.Rd 3561779792783a3dcad199eb489ed2e6 *man/depth.simplicial.Rd afd03c63c4ebf5dcbab3d3323bf5326a *man/depth.simplicialVolume.Rd d39271c146a78ba803b12914118624ab *man/depth.space..Rd c2c713412949a73174c58bda481cc3ee *man/depth.space.Mahalanobis.Rd ffebe19d9bb8c850d080744eaafc4416 *man/depth.space.halfspace.Rd 4138d41ee15dd15c3d576b2006b5aced *man/depth.space.potential.Rd c0c632e8db5a9ed727e597d15d5fc863 *man/depth.space.projection.Rd db04ab56f27a4c712a6b1e5dd5145d87 *man/depth.space.simplicial.Rd b128141314b0880d1a4908609b3b2a73 *man/depth.space.simplicialVolume.Rd af3dc3eff0c00aa49264c3d956902125 *man/depth.space.spatial.Rd f8d10359a82f05fb4d5425cbde57a495 *man/depth.space.zonoid.Rd 5f0a3513e4055fb3276649e48bb7f54b *man/depth.spatial.Rd 287fd39bb732af52e46d58751db7d817 *man/depth.zonoid.Rd 8e83dcbaaa7edfdb87c87fd9baec1861 *man/depthf..Rd 855a727498a9d56e9bef3fe8b1375d7b *man/depthf.ABD.Rd 9fc278e194b26ea0d134c33e562d08e4 *man/depthf.BD.Rd 0520dede87c0034ca9a2fd8d7663efc7 *man/depthf.HR.Rd ce69c9ce3defa04372a287875b5354a1 *man/depthf.RP1.Rd 8b05c1dbcd32e3393533ac8d59e79b04 *man/depthf.RP2.Rd 0b56a6e17c1d308d8aed75fad2a3d091 *man/depthf.fd1.Rd 04c6936cb7938bb928c160c17939346a *man/depthf.fd2.Rd 8847d34370c60cf0e4894310d93dc72c *man/depthf.hM.Rd 03535315765d34c30297b8c1999b0bfe *man/depthf.hM2.Rd 9eae672b924d34780b88f37b0946386f *man/derivatives.est.Rd 7ae891638b40364965d25dac46124d33 *man/dknn.classify.Rd 6f093a53f8cd3cb37952e31bf6458290 *man/dknn.classify.trained.Rd b69ee34c6dcccb8b9880220dee2b094c *man/dknn.train.Rd 09152e3d1f202e16ea3b232556aeb9fc *man/draw.ddplot.Rd 98ae732ce7ed854a00a10130f2c9bd45 *man/getdata.Rd 6fa28cffdbd6862127b482e54e38b627 *man/infimalRank.Rd 516e1b8668300f022c0105882c052d9d *man/is.in.convex.Rd 338fd013c826f43c5e8cd0925c616515 *man/plot.ddalpha.Rd abbd84a3e47a05b34f645dad854497e6 *man/plot.ddalphaf.Rd 040571c9d53052059e4e99ff62e79dea *man/plot.functional.Rd 37c4f27c57bca31c1957f17f2a3f0722 *man/rawfd2dataf.Rd 553f98996bf9f870922a002da3ea5836 *man/resetPar.Rd 502f7aeca2c622d9cff501146de88ed1 *man/shape.fd.analysis.Rd b24f069cfe267217b7d5619c503f4e32 *man/shape.fd.outliers.Rd 10446d2c21fb0e77c64d393b90b51d97 *src/AlphaProcedure.cpp 5217e4fd435c93e77ff105b5e18c043d *src/AlphaProcedure.h 9a8f8f2a2d7b110a3da5f546d8c92e50 *src/Common.cpp 73dc91c7c9764a7494da4761d2fd06ab *src/Common.h 1b5e18f9ea175c02253dd53d0e77763f *src/DKnn.cpp 28070a0f96061bcaa42c56ec9cb1e42c *src/DKnn.h 6b081eef24a9e6bc4ed34289c9a9f756 *src/DataStructures.h ff143c8347281cb29b9b12b60a1b45c6 *src/HD.cpp 0e7c7f1fa9a8bf7590b7d1e8d620e5cf *src/HD.h f591c09f81ae7a85ee5a946656a5da7d *src/Knn.cpp 87127b7937dcaa6f5d042b2615136ca3 *src/Knn.h 01ea50a2152648ed210b84e1e082a67e *src/Mahalanobis.cpp c2c13ea110f5e0597efffae5b4e3587f *src/Mahalanobis.h aba85cba89300dade2254b0b502602b9 *src/OjaDepth.cpp 3cc3bca13be8b94577594c876c7cd245 *src/OjaDepth.h f9ce0292ecae06cdda5d41a2d0e24a3a *src/Polynomial.cpp 4910b02364066d3dcf85700ec441f7aa *src/Polynomial.h 15fa28de11873644ec2647e57ffd4210 *src/PotentialDepth.cpp bcd7fe3926f3846ec5bf513ae4ff955b *src/PotentialDepth.h e9030ecbdcc007d36ef442445b2322a6 *src/ProjectionDepth.cpp dd72630ebdef6a21d4ecf956867861ef *src/ProjectionDepth.h b3872fed92766cfe1866b46cad859cde *src/SimplicialDepth.cpp db12ecbd2b6d9c95dd859c52934e2bf9 *src/SimplicialDepth.h d47f93174110cc45c0525f4154ecec65 *src/TukeyDepth.cpp c7e85da8b8c29692f94e5fe1bae36b7a *src/TukeyDepth.h 1a08c11646389b775cb0d2f9a170aa17 *src/ZonoidDepth.cpp b6b9054c37bab86d07c8baea10f481f5 *src/ZonoidDepth.h 99b1f54b9e63662b9a1fb8fd015cdf84 *src/asa047.cpp 0d15945f463fd3dcc4483620d5f2ab8f *src/asa047.h 76be09791fcb8431ff6dad9af827dcda *src/ddalpha.cpp 3fca9e5fac9be017aa2d26d1c75f446c *src/depth.fd.f a90105e47ce2acbb5a8fc3db8523ef8f *src/init.c 6ca76da5227ee1a6dd5f5dd8ce29c8de *src/stdafx.cpp 5d5c56df412520897f026757eff63f34 *src/stdafx.h ddalpha/DESCRIPTION0000644000176200001440000000323313163005153013353 0ustar liggesusersPackage: ddalpha Type: Package Title: Depth-Based Classification and Calculation of Data Depth Version: 1.3.1 Date: 2017-09-27 Authors@R: c(person("Oleksii", "Pokotylo", role=c("aut", "cre"), email = "alexey.pokotylo@gmail.com"), person("Pavlo", "Mozharovskyi", role=c("aut"), email = "pavlo.mozharovskyi@ensai.fr"), person("Rainer", "Dyckerhoff", role=c("aut"), email = "rainer.dyckerhoff@statistik.uni-koeln.de"), person("Stanislav", "Nagy", role=c("aut"), email = "nagy@karlin.mff.cuni.cz")) SystemRequirements: C++11 Depends: stats, utils, graphics, grDevices, MASS, class, robustbase, sfsmisc Imports: Rcpp (>= 0.11.0) LinkingTo: BH, Rcpp Description: Contains procedures for depth-based supervised learning, which are entirely non-parametric, in particular the DDalpha-procedure (Lange, Mosler and Mozharovskyi, 2014). The training data sample is transformed by a statistical depth function to a compact low-dimensional space, where the final classification is done. It also offers an extension to functional data and routines for calculating certain notions of statistical depth functions. 50 multivariate and 5 functional classification problems are included. License: GPL-2 NeedsCompilation: yes Packaged: 2017-09-27 18:51:34 UTC; User Author: Oleksii Pokotylo [aut, cre], Pavlo Mozharovskyi [aut], Rainer Dyckerhoff [aut], Stanislav Nagy [aut] Maintainer: Oleksii Pokotylo Repository: CRAN Date/Publication: 2017-09-27 20:30:35 UTC ddalpha/man/0000755000176200001440000000000013162365544012433 5ustar liggesusersddalpha/man/ddalpha.getErrorRatePart.Rd0000644000176200001440000000527613160003425017545 0ustar liggesusers\name{ddalpha.getErrorRatePart} \alias{ddalpha.getErrorRatePart} \title{ Test DD-Classifier } \description{ Performs a benchmark procedure by partitioning the given data. On each of \code{times} steps \code{size} observations are removed from the data, the DD-classifier is trained on these data and tested on the removed observations. } \usage{ ddalpha.getErrorRatePart(data, size = 0.3, times = 10, ...) } \arguments{ \item{data}{ Matrix containing training sample where each of \eqn{n} rows is one object of the training sample where first \eqn{d} entries are inputs and the last entry is output (class label). } \item{size}{ the excluded sequences size. Either an integer between \eqn{1} and \eqn{n}, or a fraction of data between \eqn{0} and \eqn{1}. } \item{times}{ the number of times the classifier is trained. } \item{\dots}{ additional parameters passed to \code{\link{ddalpha.train}} } } \value{ \item{errors}{ the part of incorrectly classified data (mean) } \item{errors_sd}{ the standard deviation of errors } \item{errors_vec}{ vector of errors } \item{time}{ the mean training time } \item{time_sd}{ the standard deviation of training time } } \seealso{ \code{\link{ddalpha.train}} to train the DD\eqn{\alpha}-classifier, \code{\link{ddalpha.classify}} for classification using DD\eqn{\alpha}-classifier, \code{\link{ddalpha.test}} to test the DD-classifier on particular learning and testing data, \code{\link{ddalpha.getErrorRateCV}} to get error rate of the DD-classifier on particular data. } \examples{ # Generate a bivariate normal location-shift classification task # containing 200 objects class1 <- mvrnorm(100, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(100, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) propertyVars <- c(1:2) classVar <- 3 data <- rbind(cbind(class1, rep(1, 100)), cbind(class2, rep(2, 100))) # Train 1st DDalpha-classifier (default settings) # and get the classification error rate stat <- ddalpha.getErrorRatePart(data, size = 10, times = 10) cat("1. Classification error rate (defaults): ", stat$error, ".\n", sep = "") # Train 2nd DDalpha-classifier (zonoid depth, maximum Mahalanobis # depth classifier with defaults as outsider treatment) # and get the classification error rate stat2 <- ddalpha.getErrorRatePart(data, depth = "zonoid", outsider.methods = "depth.Mahalanobis", size = 0.2, times = 10) cat("2. Classification error rate (depth.Mahalanobis): ", stat2$error, ".\n", sep = "") } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ benchmark } ddalpha/man/Cmetric.Rd0000644000176200001440000000337513162365543014317 0ustar liggesusers\name{Cmetric} \alias{Cmetric} \title{Fast Computation of the Uniform Metric for Sets of Functional Data} \usage{ Cmetric(A, B) } \arguments{ \item{A}{Functions of the first set, represented by a matrix of their functional values of size \code{m*d}. \code{m} stands for the number of functions, \code{d} is the number of the equi-distant points in the domain of the data at which the functional values of the \code{m} functions are evaluated.} \item{B}{Functions of the second set, represented by a matrix of their functional values of size \code{n*d}. \code{n} stands for the number of functions, \code{d} is the number of the equi-distant points in the domain of the data at which the functional values of the \code{n} functions are evaluated. The grid of observation points for the functions \code{A} and \code{B} must be the same.} } \value{ A symmetric matrix of the distances of the functions of size \code{m*n}. } \description{ Returns the matrix of \eqn{C} (uniform) distances between two sets of functional data. } \details{ For two sets of functional data of sizes \code{m} and \code{n} represented by matrices of their functional values, this function returns the symmetric matrix of size \code{m*n} whose entry in the \code{i}-th row and \code{j}-th column is the approximated \eqn{C} (uniform) distance of the \code{i}-th function from the first set, and the \code{j}-th function from the second set. This function is utilized in the computation of the h-mode depth. } \examples{ datapop = dataf2rawfd(dataf.population()$dataf,range=c(1950,2015),d=66) A = datapop[1:20,] B = datapop[21:50,] Cmetric(A,B) } \seealso{ \code{\link{depthf.hM}} \code{\link{dataf2rawfd}} } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{functional} \keyword{metric} ddalpha/man/depth.space..Rd0000644000176200001440000000451613160003425015165 0ustar liggesusers\name{depth.space.} \alias{depth.space.} \title{ Calculate Depth Space using the Given Depth } \description{ Calculates the representation of the training classes in depth space. The detailed descriptions are found in the corresponding topics. } \usage{ depth.space.(data, cardinalities, notion, ...) ## Mahalanobis depth # depth.space.Mahalanobis(data, cardinalities, mah.estimate = "moment", mah.parMcd = 0.75) ## projection depth # depth.space.projection(data, cardinalities, method = "random", num.directions = 1000) ## Tukey depth # depth.space.halfspace(data, cardinalities, exact, alg, num.directions = 1000) ## spatial depth # depth.space.spatial(data, cardinalities) ## zonoid depth # depth.space.zonoid(data, cardinalities) # Potential # depth.space.potential(data, cardinalities, pretransform = "NMom", # kernel = "GKernel", kernel.bandwidth = NULL, mah.parMcd = 0.75) } \arguments{ \item{data}{ Matrix containing training sample where each row is a \eqn{d}-dimensional object, and objects of each class are kept together so that the matrix can be thought of as containing blocks of objects representing classes. } \item{cardinalities}{ Numerical vector of cardinalities of each class in \code{data}, each entry corresponds to one class. } \item{notion}{ The name of the depth notion (shall also work with \code{\link{Custom Methods}}). } \item{\dots}{ Additional parameters passed to the depth functions. } } \value{ Matrix of objects, each object (row) is represented via its depths (columns) w.r.t. each of the classes of the training sample; order of the classes in columns corresponds to the one in the argument \code{cardinalities}. } \seealso{ \code{\link{depth.space.Mahalanobis}} \code{\link{depth.space.projection}} \code{\link{depth.space.halfspace}} \code{\link{depth.space.spatial}} \code{\link{depth.space.zonoid}} } \examples{ # Generate a bivariate normal location-shift classification task # containing 20 training objects class1 <- mvrnorm(10, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(10, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) data <- rbind(class1, class2) # Get depth space using zonoid depth depth.space.(data, c(10, 10), notion = "zonoid") } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } ddalpha/man/dataf.geneexp.Rd0000644000176200001440000000406613160003425015422 0ustar liggesusers\name{dataf.geneexp} \alias{dataf.geneexp} \docType{data} \title{ Gene Expression Profile Data } \description{ A subet of the Drosophila life cycle gene expression data of Arbeitman et al. (2002). The original data set contains 77 gene expression profiles during 58 sequential time points from the embryonic, larval, and pupal periods of the life cycle. The gene expression levels were obtained by a cDNA microarray experiment. } \usage{ dataf.geneexp() } \format{ The functional data as a data structure. \describe{ \item{\code{dataf}}{ The functional data as a list of objects. Each object is characterized by two coordinates. \describe{ \item{\code{args}}{\bold{Time} - a numeric vector of time periods} \item{\code{vals}}{\bold{Gene Expression Level} - a numeric vector} } } \item{\code{labels}}{ Biological classifications identified in Arbeitman et al.(2002) (1 = transient early zygotic genes; 2 = muscle-specific genes; 3 = eye-specific genes. )} } } \source{ Chiou, J.-M. and Li, P.-L. Functional clustering and identifying substructures of longitudinal data, J. R. Statist. Soc. B, Volume 69 (2007), 679-699 Arbeitman, M.N., Furlong, E.E.M., Imam,F., Johnson, E., Null,B.H., Baker,B.S., Krasnow, M.A., Scott,M.P., Davis,R.W. and White,K.P. (2002) Gene expression during the life cycle of Drosophila melanogaster. Science, 297, 2270-2274. } \seealso{ \code{\link{dataf.*}} for other functional data sets \code{\link{plot.functional}} for building plots of functional data } \examples{ ## load the dataset dataf = dataf.geneexp() ## view the classes unique(dataf$labels) ## access the 5th point of the 2nd object dataf$dataf[[2]]$args[5] dataf$dataf[[2]]$vals[5] ## plot the data \dontrun{ labels = unlist(dataf$labels) plot(dataf, xlab="Time", ylab="Gene Expression Level", main=paste0("Gene Expression: 1 red (", sum(labels == 1), "), ", "2 green (", sum(labels == 2), "), ", "3 blue (", sum(labels == 3), ")"), colors = c("red", "green", "blue")) } } \keyword{datasets} \keyword{functional} ddalpha/man/depthf.BD.Rd0000644000176200001440000000370213162365543014461 0ustar liggesusers\name{depthf.BD} \alias{depthf.BD} \title{Band Depth for Functional Data} \usage{ depthf.BD(datafA, datafB, range = NULL, d = 101) } \arguments{ \item{datafA}{Functions whose depth is computed, represented by a \code{dataf} object of their arguments and functional values. \code{m} stands for the number of functions.} \item{datafB}{Random sample functions with respect to which the depth of \code{datafA} is computed. \code{datafB} is represented by a \code{dataf} object of their arguments and functional values. \code{n} is the sample size. The grid of observation points for the functions \code{datafA} and \code{datafB} may not be the same.} \item{range}{The common range of the domain where the functions \code{datafA} and \code{datafB} are observed. Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in \code{datafA} and \code{datafB}.} \item{d}{Grid size to which all the functional data are transformed. For depth computation, all functional observations are first transformed into vectors of their functional values of length \code{d} corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these points are reconstructed using linear interpolation, and extrapolation.} } \value{ A vector of length \code{m} of the band depth values. } \description{ The (unadjusted) band depth for functional real-valued data of order \code{J=2}. } \details{ The function returns the vector of the sample (unadjusted) band depth values. } \examples{ datafA = dataf.population()$dataf[1:20] datafB = dataf.population()$dataf[21:50] depthf.BD(datafA,datafB) } \references{ Lopez-Pintado, S. and Romo, J. (2009), On the concept of depth for functional data, \emph{J. Amer. Statist. Assoc.} \bold{104} (486), 718 - 734. } \seealso{ \code{\link{depthf.ABD}}, \code{\link{depthf.fd1}} } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{depth} \keyword{functional} ddalpha/man/dataf.population2010.Rd0000644000176200001440000000353613162365543016503 0ustar liggesusers\docType{data} \name{dataf.population2010} \alias{dataf.population2010} \title{World Historical Population-by-Country Dataset (2010 Revision)} \format{ The functional data as a data structure. \describe{ \item{\code{dataf}}{ The functional data as a list of objects. Each object is characterized by two coordinates \describe{ \item{\code{args}}{\bold{year} - a numeric vector of years 1950-2010 (61 years)} \item{\code{vals}}{\bold{population} - a numeric vector of the estimated total population in thousands in 233 countries and regions} } } \item{\code{labels}}{The geographic region of the country} \item{\code{identifier}}{The name of country or region} } } \source{ United Nations, Department of Economic and Social Affairs, Population Division, \url{https://esa.un.org/unpd/wpp/Download/Standard/Population/}, file \code{Total population - Both sexes} } \usage{ dataf.population2010() } \description{ Historical world population data by countries. } \details{ World population data by a country, area or region as of 1 July of the year indicated. Figures are presented in thousands. } \examples{ ## load the Population dataset dataf = dataf.population2010() ## view the classes unique(dataf$labels) ## access the 5th point of the 2nd object dataf$dataf[[2]]$args[5] dataf$dataf[[2]]$vals[5] ## plot the data ## Not run: labels = unlist(dataf$labels) plot(dataf, main = "World population data", xlab="Year", ylab="Population (in thousands)" ) ## End(Not run) ## compute the integrated and infimal depths of the data curves ## with respect to the same set of curves depthf.fd1(dataf$dataf, dataf$dataf) } \seealso{ \code{\link{dataf.population}} \code{\link{dataf.*}} for other functional data sets \code{\link{plot.functional}} for building plots of functional data } \keyword{datasets} \keyword{functional} ddalpha/man/depth..Rd0000644000176200001440000000526512776660136014121 0ustar liggesusers\name{depth.} \alias{depth.} \title{ Calculate Depth } \description{ Calculates the depth of points w.r.t. a multivariate data set. The detailed descriptions are found in the corresponding topics. } \usage{ depth.(x, data, notion, ...) ## Tukey depth # depth.halfspace(x, data, exact, method, num.directions = 1000, seed = 0) ## Mahalanobis depth # depth.Mahalanobis(x, data, mah.estimate = "moment", mah.parMcd = 0.75) ## projection depth # depth.projection(x, data, method = "random", num.directions = 1000) ## simplicial depth # depth.simplicial(x, data, exact = F, k = 0.05, seed = 0) ## simplicial volume depth # depth.simplicialVolume(x, data, exact = F, k = 0.05, seed = 0) ## spatial depth # depth.spatial(x, data) ## zonoid depth # depth.zonoid(x, data) # Potential # depth.potential (x, data, pretransform = "1Mom", # kernel = "GKernel", kernel.bandwidth = NULL, mah.parMcd = 0.75) } \arguments{ \item{x}{ Matrix of objects (numerical vector as one object) whose depth is to be calculated; each row contains a \eqn{d}-variate point. Should have the same dimension as \code{data}. } \item{data}{ Matrix of data where each row contains a \eqn{d}-variate point, w.r.t. which the depth is to be calculated. } \item{notion}{ The name of the depth notion (shall also work with a user-defined depth function named \code{"depth."}). } \item{\dots}{ Additional parameters passed to the depth functions. } } \seealso{ \code{\link{depth.halfspace}} \code{\link{depth.Mahalanobis}} \code{\link{depth.projection}} \code{\link{depth.simplicial}} \code{\link{depth.simplicialVolume}} \code{\link{depth.spatial}} \code{\link{depth.zonoid}} \code{\link{depth.potential}} \code{\link{depth.graph}} for building the depth surfaces of the two dimensional data. } \value{ Numerical vector of depths, one for each row in \code{x}; or one depth value if \code{x} is a numerical vector. } \examples{ # 5-dimensional normal distribution data <- mvrnorm(1000, rep(0, 5), matrix(c(1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1), nrow = 5)) x <- mvrnorm(10, rep(1, 5), matrix(c(1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), nrow = 5)) depths <- depth.(x, data, notion = "zonoid") cat("Depths: ", depths, "\n") } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } ddalpha/man/FKS.Rd0000644000176200001440000000404713162365543013351 0ustar liggesusers\name{FKS} \alias{FKS} \title{Fast Kernel Smoothing} \usage{ FKS(dataf, Tout, kernel = c("uniform", "triangular", "Epanechnikov", "biweight", "triweight", "Gaussian"), m = 51, K = 20) } \arguments{ \item{dataf}{A set of functional data given by a \code{dataf} object that are to be smoothed.} \item{Tout}{vector of values in the domain of the functions at which the resulting smoothed function is evaluated} \item{kernel}{Kernel used for smoothing. Admissible values are \code{uniform}, \code{triangular}, \code{Epanechnikov}, \code{biweight}, \code{triweight} and \code{Gaussian}. By default, \code{uniform} is used.} \item{m}{Number of points in the grid for choosing the cross-validated bandwidth.} \item{K}{Performs \code{K}-fold cross-validation based on randomly shuffled data.} } \value{ A \code{dataf} object corresponding to \code{Tout} of smoothed functional values. } \description{ Produces a kernel smoothed version of a function based on the vectors given in the input. Bandwidth is selected using cross-validation. } \details{ A vector of the same length as \code{Tout} corresponding to the values of the function produced using kernel smoothing, is provided. Bandwidth is selected using the \code{K}-fold cross-validation of randomly shuffled input values. } \examples{ d = 10 T = sort(runif(d)) X = T^2+ rnorm(d,sd=.1) Tout = seq(0,1,length=101) plot(T,X) dataf = list(list(args=T,vals=X)) data.sm = FKS(dataf,Tout,kernel="Epan") lines(data.sm[[1]]$args,data.sm[[1]]$vals,col=2) datafs = structure(list(dataf=dataf,labels=1:length(dataf)),class="functional") plot(datafs) points(T,X) data.sms = structure(list(dataf=data.sm,labels=1:length(data.sm)),class="functional") plot(data.sms) n = 6 dataf = list() for(i in 1:n) dataf[[i]] = list(args = T<-sort(runif(d)), vals = T^2 + rnorm(d,sd=.1)) data.sm = FKS(dataf,Tout,kernel="triweight") data.sms = structure(list(dataf=data.sm,labels=1:length(data.sm)),class="functional") plot(data.sms) } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{functional} \keyword{kernel} \keyword{smoothing} ddalpha/man/dataf.sim.1.CFF07.Rd0000644000176200001440000000426312776660136015505 0ustar liggesusers\name{dataf.sim.1.CFF07} \alias{dataf.sim.1.CFF07} \title{ Model 1 from Cuevas et al. (2007) } \description{ Model 1 from Cuevas et al. (2007) Processes: \cr X(t) = m_0(t) + e(t), m_0(t) = 30*(1-t)*t^1.2 \cr Y(t) = m_1(t) + e(t), m_1(t) = 30*(1-t)^1.2*t \cr e(t): Gaussian with mean = 0, cov(X(s), X(t)) = 0.2*exp(-abs(s - t)/0.3)\cr the processes are discretized at \code{numDiscrets} equally distant points on [0, 1]. The functions are smooth and differ in mean only, which makes the classification task rather simple. } \usage{ dataf.sim.1.CFF07(numTrain = 100, numTest = 50, numDiscrets = 51, plot = FALSE) } \arguments{ \item{numTrain}{ number of objects in the training sample } \item{numTest}{ number of objects in the test sample } \item{numDiscrets}{ number of points for each object } \item{plot}{ if TRUE the training sample is plotted } } \format{ A data strusture containing \code{$learn} and \code{$test} functional data. The functional data are given as data structures. \describe{ \item{\code{dataf}}{ The functional data as a list of objects. Each object is characterized by two coordinates. \describe{ \item{\code{args}}{a numeric vector} \item{\code{vals}}{a numeric vector} } } \item{\code{labels}}{The classes of the objects: 0 for X(t), 1 for Y(t)} } } \source{ Cuevas, A., Febrero, M. and Fraiman, R. (2007). Robust estimation and classification for functional data via projection-based depth notions. Computational Statistics 22 481-496. } \seealso{ \code{\link{dataf.*}} for other functional data sets \code{\link{plot.functional}} for building plots of functional data } \examples{ ## load the dataset dataf = dataf.sim.1.CFF07(numTrain = 100, numTest = 50, numDiscrets = 51) learn = dataf$learn test = dataf$test ## view the classes unique(learn$labels) ## access the 5th point of the 2nd object learn$dataf[[2]]$args[5] learn$dataf[[2]]$vals[5] \dontrun{ ## plot the data plot(learn) plot(test) ## or dataf = dataf.sim.1.CFF07(numTrain = 100, numTest = 50, numDiscrets = 51, plot = TRUE) } } \keyword{datasets} \keyword{functional} ddalpha/man/ddalpha.getErrorRateCV.Rd0000644000176200001440000000472413160003425017144 0ustar liggesusers\name{ddalpha.getErrorRateCV} \alias{ddalpha.getErrorRateCV} \title{ Test DD-Classifier } \description{ Performs a cross-validation procedure over the given data. On each step every \code{numchunks} observation is removed from the data, the DD-classifier is trained on these data and tested on the removed observations. } \usage{ ddalpha.getErrorRateCV (data, numchunks = 10, ...) } \arguments{ \item{data}{ Matrix containing training sample where each of \eqn{n} rows is one object of the training sample where first \eqn{d} entries are inputs and the last entry is output (class label). } \item{numchunks}{ number of subsets of testing data. Equals to the number of times the classifier is trained. } \item{\dots}{ additional parameters passed to \code{\link{ddalpha.train}} } } \value{ \item{errors}{ the part of incorrectly classified data } \item{time}{ the mean training time } \item{time_sd}{ the standard deviation of training time } } \seealso{ \code{\link{ddalpha.train}} to train the DD\eqn{\alpha}-classifier, \code{\link{ddalpha.classify}} for classification using DD\eqn{\alpha}-classifier, \code{\link{ddalpha.test}} to test the DD-classifier on particular learning and testing data, \code{\link{ddalpha.getErrorRatePart}} to perform a benchmark study of the DD-classifier on particular data. } \examples{ # Generate a bivariate normal location-shift classification task # containing 200 training objects and 200 to test with class1 <- mvrnorm(150, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(150, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) propertyVars <- c(1:2) classVar <- 3 data <- rbind(cbind(class1, rep(1, 150)), cbind(class2, rep(2, 150))) # Train 1st DDalpha-classifier (default settings) # and get the classification error rate stat <- ddalpha.getErrorRateCV(data, numchunks = 5) cat("1. Classification error rate (defaults): ", stat$error, ".\n", sep = "") # Train 2nd DDalpha-classifier (zonoid depth, maximum Mahalanobis # depth classifier with defaults as outsider treatment) # and get the classification error rate stat2 <- ddalpha.getErrorRateCV(data, depth = "zonoid", outsider.methods = "depth.Mahalanobis") cat("2. Classification error rate (depth.Mahalanobis): ", stat2$error, ".\n", sep = "") } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ benchmark } ddalpha/man/plot.functional.Rd0000644000176200001440000000465213160017043016032 0ustar liggesusers\name{plot.functional} \alias{plot.functional} \alias{lines.functional} \alias{points.functional} \title{ Plot functions for the Functional Data } \description{ Plots the functional data given in the form which is described in the topic \code{\link{dataf.*}}. } \usage{ \method{plot}{functional}(x, main = "Functional data", xlab = "args", ylab = "vals", colors = c("red", "blue", "green", "black", "orange", "pink"), ...) \method{lines}{functional}(x, colors = c("red", "blue", "green", "black", "orange", "pink"), ...) \method{points}{functional}(x, colors = c("red", "blue", "green", "black", "orange", "pink"), ...) } \arguments{ \item{x}{ The functional data as in the topic \code{\link{dataf.*}}. Note, that the in order to use s3 methods the data must be of class "functional". } \item{main}{ an overall title for the plot: see \code{\link{title}} } \item{xlab}{ a title for the x axis: see \code{\link{title}} } \item{ylab}{ a title for the y axis: see \code{\link{title}} } \item{colors}{ the colors for the classes of the data. The colors are applied to the classes sorted in alphabetical order. Use the same set of classes to ensure that the same colours are selected in \code{lines} and \code{points} as in \code{plot} (do not remove entire classes). } \item{\dots}{ additional parameters } } \seealso{ \code{\link{dataf.*}} for functional data description } \examples{ \dontrun{ ## load the Growth dataset dataf = dataf.growth() labels = unlist(dataf$labels) plot(dataf, main = paste("Growth: girls red (", sum(labels == "girl"), "),", " boys blue (", sum(labels == "boy"), ")", sep=""), xlab="Year", ylab="Height, cm", colors = c("blue", "red") # in alphabetical order of class labels ) # plot an observation as a line observation = structure(list(dataf = list(dataf$dataf[[1]])), class = "functional") lines(observation, colors = "green", lwd = 3) # plot hight at the age of 14 indexAge14 = which(observation$dataf[[1]]$args == 14) hightAge14 = observation$dataf[[1]]$vals[indexAge14] atAge14 = structure(list( dataf = list(dataf = list(args = 14, vals = hightAge14)) ), class = "functional") points(atAge14, colors = "yellow", pch = 18) } } \keyword{ visualization } \keyword{ functional } ddalpha/man/derivatives.est.Rd0000644000176200001440000000560213162365544016044 0ustar liggesusers\name{derivatives.est} \alias{derivatives.est} \title{Estimation of the First Two Derivatives for Functional Data} \usage{ derivatives.est(dataf, range = NULL, d = 101, spar = NULL, deriv = c(0, 1)) } \arguments{ \item{dataf}{Functional dataset, represented by a \code{dataf} object of their arguments and functional values. \code{m} stands for the number of functions.} \item{range}{The common range of the domain where the functions \code{dataf} are observed. Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in \code{dataf}.} \item{d}{Grid size to which all the functional data are transformed. For computation, all functional observations are first transformed into vectors of their functional values of length \code{d} corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these points are reconstructed using linear interpolation, and extrapolation.} \item{spar}{If provided, this parameter is passed to functions \code{D1ss} and \code{D2ss} from package \code{sfsmisc} as the value of the smoothing spline parameter in order to numerically approximate the derivatives of \code{dataf}.} \item{deriv}{A vector composed of \code{0}, \code{1}, and \code{2} of the demanded functional values / derivatives of the functions in the rows of \code{dataf}. \code{0} stands for the functional values, \code{1} for the first derivatives, \code{2} for the second derivatives.} } \value{ A multivariate \code{dataf} object of the functional values and / or the derivatives of \code{dataf}. The dimensionality of the vector-valued functional data is \code{nd}. The arguments of the data are all equal to an equi-distant grid of \code{d} points in the domain given by \code{range}. \code{nd} is the demanded number of derivatives at the output, i.e. the length of the vector \code{deriv}. } \description{ Returns the estimated values of derivatives of functional data. } \details{ If the input \code{dataf} is a functional random sample of size \code{m}, the function returns a \code{dataf} object of \code{nd}-dimensional functional data, where in the elements of the vector-valued functional data represent the estimated values of the derivatives of \code{dataf}. All derivatives are evaluated at an equi-distant grid of \code{d} points in the domain given by \code{range}. \code{nd} here stands for \code{1}, \code{2} or \code{3}, depending on how many derivatives of \code{dataf} are requested to be computed. For the estimation, functions \code{D1ss} and \code{D2ss} from the package \code{sfsmisc} are utilized. } \examples{ dataf = dataf.population()$dataf derivatives.est(dataf,deriv=c(0,1,2)) } \seealso{ \code{\link[sfsmisc]{D1ss}} in package sfsmisc \code{\link[sfsmisc]{D2ss}} in package sfsmisc } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{derivatives} \keyword{functional} \keyword{kernel} ddalpha/man/ddalphaf.getErrorRatePart.Rd0000644000176200001440000000460613160003425017707 0ustar liggesusers\name{ddalphaf.getErrorRatePart} \alias{ddalphaf.getErrorRatePart} \title{ Test Functional DD-Classifier } \description{ Performs a benchmark procedure by partitioning the given data. On each of \code{times} steps \code{size} observations are removed from the data, the functional DD-classifier is trained on these data and tested on the removed observations. } \usage{ ddalphaf.getErrorRatePart(dataf, labels, size = 0.3, times = 10, disc.type = c("LS", "comp"), ...) } \arguments{ \item{dataf}{ list containing lists (functions) of two vectors of equal length, named "args" and "vals": arguments sorted in ascending order and corresponding them values respectively } \item{labels}{ list of output labels of the functional observations } \item{size}{ the excluded sequences size. Either an integer between \eqn{1} and \eqn{n}, or a fraction of data between \eqn{0} and \eqn{1}. } \item{times}{ the number of times the classifier is trained. } \item{disc.type}{ type of the used discretization scheme. "LS" for \code{\link{ddalphaf.train}}, "comp" for for \code{\link{compclassf.train}} } \item{\dots}{ additional parameters passed to \code{\link{ddalphaf.train}} } } \value{ \item{errors}{ the part of incorrectly classified data (mean) } \item{errors_sd}{ the standard deviation of errors } \item{errors_vec}{ vector of errors } \item{time}{ the mean training time } \item{time_sd}{ the standard deviation of training time } } \seealso{ \code{\link{ddalphaf.train}} to train the functional DD\eqn{\alpha}-classifier, \code{\link{ddalphaf.classify}} for classification using functional DD\eqn{\alpha}-classifier, \code{\link{ddalphaf.test}} to test the functional DD-classifier on particular learning and testing data, \code{\link{ddalphaf.getErrorRateCV}} to get error rate of the functional DD-classifier on particular data. } \examples{ # load the fdata df = dataf.growth() stat <- ddalphaf.getErrorRatePart(dataf = df$dataf, labels = df$labels, size = 0.3, times = 5, adc.args = list(instance = "avr", numFcn = 2, numDer = 2)) cat("Classification error rate: ", stat$errors, ".\n", sep = "") } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ benchmark } ddalpha/man/depthf.fd2.Rd0000644000176200001440000000704213162365544014651 0ustar liggesusers\name{depthf.fd2} \alias{depthf.fd2} \title{Bivariate Integrated and Infimal Depth for Functional Data} \usage{ depthf.fd2(datafA, datafB, range = NULL, d = 101) } \arguments{ \item{datafA}{Bivariate functions whose depth is computed, represented by a multivariate \code{dataf} object of their arguments (vector), and a matrix with two columns of the corresponding bivariate functional values. \code{m} stands for the number of functions.} \item{datafB}{Bivariate random sample functions with respect to which the depth of \code{datafA} is computed. \code{datafB} is represented by a multivariate \code{dataf} object of their arguments (vector), and a matrix with two columns of the corresponding bivariate functional values. \code{n} is the sample size. The grid of observation points for the functions \code{datafA} and \code{datafB} may not be the same.} \item{range}{The common range of the domain where the functions \code{datafA} and \code{datafB} are observed. Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in \code{datafA} and \code{datafB}.} \item{d}{Grid size to which all the functional data are transformed. For depth computation, all functional observations are first transformed into vectors of their functional values of length \code{d} corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these points are reconstructed using linear interpolation, and extrapolation.} } \value{ Four vectors of length \code{m} are returned: \itemize{ \item \code{Simpl_FD} the integrated depth based on the bivariate simplicial depth, \item \code{Half_FD} the integrated depth based on the bivariate halfspace depth, \item \code{Simpl_ID} the infimal depth based on the bivariate simplicial depth, \item \code{Half_ID} the infimal depth based on the bivariate halfspace depth. } In addition, two vectors of length \code{m} of the relative area of smallest depth values is returned: \itemize{ \item \code{Simpl_IA} the proportions of points at which the depth \code{Simpl_ID} was attained, \item \code{Half_IA} the proportions of points at which the depth \code{Half_ID} was attained. } The values \code{Simpl_IA} and \code{Half_IA} are always in the interval [0,1]. They introduce ranking also among functions having the same infimal depth value - if two functions have the same infimal depth, the one with larger infimal area \code{IA} is said to be less central. } \description{ Integrated and infimal depths of functional bivariate data (that is, data of the form \eqn{X:[a,b] \to R^2}, or \eqn{X:[a,b] \to R} and the derivative of \eqn{X}) based on the bivariate halfspace and simplicial depths. } \details{ The function returns the vectors of sample integrated and infimal depth values. } \examples{ datafA = dataf.population()$dataf[1:20] datafB = dataf.population()$dataf[21:50] dataf2A = derivatives.est(datafA,deriv=c(0,1)) dataf2B = derivatives.est(datafB,deriv=c(0,1)) depthf.fd2(dataf2A,dataf2B) } \references{ Hlubinka, D., Gijbels, I., Omelka, M. and Nagy, S. (2015). Integrated data depth for smooth functions and its application in supervised classification. \emph{Computational Statistics}, \bold{30} (4), 1011--1031. Nagy, S., Gijbels, I. and Hlubinka, D. (2017). Depth-based recognition of shape outlying functions. \emph{Journal of Computational and Graphical Statistics}. To appear. } \seealso{ \code{\link{depthf.fd1}}, \code{\link{infimalRank}} } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{depth} \keyword{derivatives} \keyword{functional} ddalpha/man/plot.ddalphaf.Rd0000644000176200001440000000261013160003425015422 0ustar liggesusers\name{plot.ddalphaf} \alias{plot.ddalphaf} \title{ Plots for the "ddalphaf" Class } \description{ \code{\link{plot.functional}} -- plots the functional data used by classifier \code{\link{depth.contours.ddalpha}} -- builds the data depth contours for multiclass 2-dimensional data using the trained classifier. \code{\link{draw.ddplot}} -- draws the \emph{DD}-plot of the existing DD\eqn{\alpha}-classifier. } \usage{ \method{plot}{ddalphaf}(x, type = c("functional.data", "ddplot", "depth.contours"), ...) } \arguments{ \item{x}{ functional DD\eqn{\alpha}-classifier (obtained by \code{\link{ddalphaf.train}}). } \item{type}{ type of the plot for \code{\link{plot.functional}}, \code{\link{draw.ddplot}} or \code{\link{depth.contours.ddalpha}} } \item{\dots}{ additional parameters passed to the depth functions and to \code{\link{plot}} } } \seealso{ \code{\link{depth.}} \code{\link{depth.contours}} \code{\link{depth.graph}} } \examples{ \dontrun{ dataf = dataf.growth() ddalphaf = ddalphaf.train (dataf$dataf, dataf$labels, classifier.type = "ddalpha", maxNumIntervals = 2) # plot the functional data plot(ddalphaf) # plot depth contours and separation in the transformed space # (possible only if maxNumIntervals = 2) plot(ddalphaf, type = "depth.contours") # plot the DD-plot plot(ddalphaf, type = "ddplot") } } \keyword{ functional } \keyword{ visualization } ddalpha/man/depthf.hM.Rd0000644000176200001440000000552513162365544014546 0ustar liggesusers\name{depthf.hM} \alias{depthf.hM} \title{h-Mode Depth for Functional Data} \usage{ depthf.hM(datafA, datafB, range = NULL, d = 101, norm = c("C", "L2"), q = 0.2) } \arguments{ \item{datafA}{Functions whose depth is computed, represented by a \code{dataf} object of their arguments and functional values. \code{m} stands for the number of functions.} \item{datafB}{Random sample functions with respect to which the depth of \code{datafA} is computed. \code{datafB} is represented by a \code{dataf} object of their arguments and functional values. \code{n} is the sample size. The grid of observation points for the functions \code{datafA} and \code{datafB} may not be the same.} \item{range}{The common range of the domain where the functions \code{datafA} and \code{datafB} are observed. Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in \code{datafA} and \code{datafB}.} \item{d}{Grid size to which all the functional data are transformed. For depth computation, all functional observations are first transformed into vectors of their functional values of length \code{d} corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these points are reconstructed using linear interpolation, and extrapolation.} \item{norm}{The norm used for the computation of the depth. Two possible choices are implemented: \code{C} for the uniform norm of continuous functions, and \code{L2} for the \eqn{L^2} norm of integrable functions.} \item{q}{The quantile used to determine the value of the bandwidth \eqn{h} in the computation of the h-mode depth. \eqn{h} is taken as the \code{q}-quantile of all non-zero distances between the functions \code{B}. By default, this value is set to \code{q=0.2}, in accordance with the choice of Cuevas et al. (2007).} } \value{ A vector of length \code{m} of the h-mode depth values. } \description{ The h-mode depth of functional real-valued data. } \details{ The function returns the vectors of the sample h-mode depth values. The kernel used in the evaluation is the standard Gaussian kernel, the bandwidth value is chosen as a quantile of the non-zero distances between the random sample curves. } \examples{ datafA = dataf.population()$dataf[1:20] datafB = dataf.population()$dataf[21:50] depthf.hM(datafA,datafB) depthf.hM(datafA,datafB,norm="L2") } \references{ Cuevas, A., Febrero, M. and Fraiman, R. (2007). Robust estimation and classification for functional data via projection-based depth notions. \emph{Computational Statistics} \bold{22} (3), 481--496. Nagy, S., Gijbels, I. and Hlubinka, D. (2016). Weak convergence of discretely observed functional data with applications. \emph{Journal of Multivariate Analysis}, \bold{146}, 46--62. } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{depth} \keyword{functional} ddalpha/man/dknn.train.Rd0000644000176200001440000000621513160003425014755 0ustar liggesusers\name{dknn.train} \alias{dknn.train} \title{ Depth-Based kNN } \description{ The implementation of the affine-invariant depht-based kNN of Paindaveine and Van Bever (2015). } \usage{ dknn.train(data, kMax = -1, depth = "halfspace", seed = 0) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{data}{ Matrix containing training sample where each of \eqn{n} rows is one object of the training sample where first \eqn{d} entries are inputs and the last entry is output (class label). } \item{kMax}{ the maximal value for the number of neighbours. If the value is set to -1, the default value is calculated as n/2, but at least 2, at most n-1. } \item{depth}{ Character string determining which depth notion to use; the default value is \code{"halfspace"}. Currently the method supports the following depths: "halfspace", "Mahalanobis", "simplicial". } \item{seed}{ the random seed. The default value \code{seed=0} makes no changes. } } %\details{ %% ~~ If necessary, more details than the description above ~~ %} \value{ The returned object contains technical information for classification, including the found optimal value \code{k}. } \references{ Paindaveine, D. and Van Bever, G. (2015). Nonparametrically consistent depth-based classifiers. \emph{Bernoulli} \bold{21} 62--82. } %\note{ %% ~~further notes~~ %} %% ~Make other sections like Warning with \section{Warning }{....} ~ \seealso{ \code{\link{dknn.classify}} and \code{\link{dknn.classify.trained}} to classify with the Dknn-classifier. \code{\link{ddalpha.train}} to train the DD\eqn{\alpha}-classifier. \code{\link{ddalpha.getErrorRateCV}} and \code{\link{ddalpha.getErrorRatePart}} to get error rate of the Dknn-classifier on particular data (set \code{separator = "Dknn"}). } \examples{ # Generate a bivariate normal location-shift classification task # containing 200 training objects and 200 to test with class1 <- mvrnorm(200, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(200, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) trainIndices <- c(1:100) testIndices <- c(101:200) propertyVars <- c(1:2) classVar <- 3 trainData <- rbind(cbind(class1[trainIndices,], rep(1, 100)), cbind(class2[trainIndices,], rep(2, 100))) testData <- rbind(cbind(class1[testIndices,], rep(1, 100)), cbind(class2[testIndices,], rep(2, 100))) data <- list(train = trainData, test = testData) # Train the classifier # and get the classification error rate cls <- dknn.train(data$train, kMax = 20, depth = "Mahalanobis") cls$k classes1 <- dknn.classify.trained(data$test[,propertyVars], cls) cat("Classification error rate: ", sum(unlist(classes1) != data$test[,classVar])/200) # Classify the new data based on the old ones in one step classes2 <- dknn.classify(data$test[,propertyVars], data$train, k = cls$k, depth = "Mahalanobis") cat("Classification error rate: ", sum(unlist(classes2) != data$test[,classVar])/200) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ multivariate } \keyword{ nonparametric } \keyword{ classif } ddalpha/man/ddalpha.classify.Rd0000644000176200001440000001036613160556176016142 0ustar liggesusers\name{ddalpha.classify} \alias{ddalpha.classify} \alias{predict.ddalpha} \title{ Classify using DD-Classifier } \description{ Classifies data using the DD-classifier and a specified outsider treatment. } \usage{ ddalpha.classify(ddalpha, objects, subset, outsider.method = NULL, use.convex = NULL) \method{predict}{ddalpha}(object, objects, subset, outsider.method = NULL, use.convex = NULL, ...) } \arguments{ \item{ddalpha, object}{ DD\eqn{\alpha}-classifier (obtained by \code{\link{ddalpha.train}}). } \item{objects}{ Matrix containing objects to be classified; each row is one \eqn{d}-dimensional object. } \item{subset}{ an optional vector specifying a subset of observations to be classified. } \item{outsider.method}{ Character string, name of a treatment to be used for outsiders; one of those trained by \code{\link{ddalpha.train}}. If the treatment was specified using the argument \code{outsider.methods} then use the name of the method. } \item{use.convex}{ Logical variable indicating whether outsiders should be determined as the points not contained in any of the convex hulls of the classes from the training sample (\code{TRUE}) or those having zero depth w.r.t. each class from the training sample (\code{FALSE}). For \code{depth =} \code{"zonoid"} both values give the same result. If \code{NULL} the value specified in DD\eqn{\alpha}-classifier (in \code{\link{ddalpha.train}}) is used. } \item{\dots}{ additional parameters are ignored } } \details{ Only one outsider treatment can be specified. See Lange, Mosler and Mozharovskyi (2014) for details and additional information. } \value{ List containing class labels, or character string "Ignored" for the outsiders if "Ignore" was specified as the outsider treating method. } \references{ Dyckerhoff, R., Koshevoy, G., and Mosler, K. (1996). Zonoid data depth: theory and computation. In: Prat A. (ed), \emph{COMPSTAT 1996. Proceedings in computational statistics}, Physica-Verlag (Heidelberg), 235--240. Lange, T., Mosler, K., and Mozharovskyi, P. (2014). Fast nonparametric classification based on data depth. \emph{Statistical Papers} \bold{55} 49--69. Li, J., Cuesta-Albertos, J.A., and Liu, R.Y. (2012). DD-classifier: Nonparametric classification procedure based on DD-plot. \emph{Journal of the American Statistical Association} \bold{107} 737--753. Mozharovskyi, P. (2015). \emph{Contributions to Depth-based Classification and Computation of the Tukey Depth}. Verlag Dr. Kovac (Hamburg). Mozharovskyi, P., Mosler, K., and Lange, T. (2015). Classifying real-world data with the DD\eqn{\alpha}-procedure. \emph{Advances in Data Analysis and Classification} \bold{9} 287--314. Vasil'ev, V.I. (2003). The reduction principle in problems of revealing regularities I. \emph{Cybernetics and Systems Analysis} \bold{39} 686--694. } \seealso{ \code{\link{ddalpha.train}} to train the DD-classifier. } \examples{ # Generate a bivariate normal location-shift classification task # containing 200 training objects and 200 to test with class1 <- mvrnorm(200, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(200, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) trainIndices <- c(1:100) testIndices <- c(101:200) propertyVars <- c(1:2) classVar <- 3 trainData <- rbind(cbind(class1[trainIndices,], rep(1, 100)), cbind(class2[trainIndices,], rep(2, 100))) testData <- rbind(cbind(class1[testIndices,], rep(1, 100)), cbind(class2[testIndices,], rep(2, 100))) data <- list(train = trainData, test = testData) # Train the DDalpha-Classifier (zonoid depth, maximum Mahalanobis depth # classifier with defaults as outsider treatment) ddalpha <- ddalpha.train(data$train, depth = "zonoid", outsider.methods = "depth.Mahalanobis") # Get the classification error rate classes <- ddalpha.classify(data$test[,propertyVars], ddalpha, outsider.method = "depth.Mahalanobis") cat("Classification error rate: ", sum(unlist(classes) != data$test[,classVar])/200, ".\n", sep="") } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } \keyword{ classif } ddalpha/man/ddalphaf.train.Rd0000644000176200001440000001242713162264612015601 0ustar liggesusers\name{ddalphaf.train} \alias{ddalphaf.train} \title{ Functional DD-Classifier } \description{ Trains the functional DD-classifier } \usage{ ddalphaf.train(dataf, labels, subset, adc.args = list(instance = "avr", numFcn = -1, numDer = -1), classifier.type = c("ddalpha", "maxdepth", "knnaff", "lda", "qda"), cv.complete = FALSE, maxNumIntervals = min(25, ceiling(length(dataf[[1]]$args)/2)), seed = 0, ...) } \arguments{ \item{dataf}{ list containing lists (functions) of two vectors of equal length, named "args" and "vals": arguments sorted in ascending order and corresponding them values respectively } \item{labels}{ list of output labels of the functional observations } \item{subset}{ an optional vector specifying a subset of observations to be used in training the classifier. } \item{adc.args}{ Represents a function sample as a multidimensional (dimension=\code{"numFcn"+"numDer"}) one averaging (\code{instance = "avr"}) or evaluating (\code{instance = "val"}) for that each function and it derivative on \code{"numFcn"} (resp. \code{"numDer"}) equal nonoverlapping covering intervals First two named \code{"args"} and \code{"vals"} are arguments sorted in ascending order and having same bounds for all functions and corresponding them values respectively \describe{ \item{instance}{ type of discretizing the functions: \cr "avr" - by averaging over intervals of the same length \cr "val" - by taking values on equally-spaced grid } \item{numFcn}{ number of function intervals } \item{numDer}{ number of first-derivative intervals } } Set \code{numFcn} and \code{numDer} to -1 to apply cross-validation. Set \code{adc.args} to a list of "adc.args" objects to cross-validate only over these values. } \item{classifier.type}{ the classifier which is used on the transformed space. The default value is 'ddalpha'. } \item{cv.complete}{ T: apply complete cross-validation\cr F: restrict cross-validation by Vapnik-Chervonenkis bound } \item{maxNumIntervals}{ maximal number of intervals for cross-validation ( max(numFcn + numDer) = maxNumIntervals ) } \item{seed}{ the random seed. The default value \code{seed=0} makes no changes. } \item{\dots}{ additional parameters, passed to the classifier, selected with parameter \code{classifier.type}. } } \details{ The functional DD-classifier is fast nonparametric procedure for classifying functional data. It consists of a two-step transformation of the original data plus a classifier operating on a low-dimensional hypercube. The functional data are first mapped into a finite-dimensional location-slope space and then transformed by a multivariate depth function into the DD-plot, which is a subset of the unit hypercube. This transformation yields a new notion of depth for functional data. Three alternative depth functions are employed for this, as well as two rules for the final classification. The resulting classifier is cross-validated over a small range of parameters only, which is restricted by a Vapnik-Cervonenkis bound. The entire methodology does not involve smoothing techniques, is completely nonparametric and allows to achieve Bayes optimality under standard distributional settings. It is robust and efficiently computable. } \value{ Trained functional DD-classifier %% If it is a LIST, use %% \item{comp1 }{Description of 'comp1'} %% \item{comp2 }{Description of 'comp2'} %% ... } \references{ Mosler, K. and Mozharovskyi, P. (2015). Fast DD-classification of functional data, \emph{Statistical Papers}, in press. Mozharovskyi, P. (2015). \emph{Contributions to Depth-based Classification and Computation of the Tukey Depth}. Verlag Dr. Kovac (Hamburg). } \seealso{ \code{\link{ddalphaf.classify}} for classification using functional DD\eqn{\alpha}-classifier, \code{\link{compclassf.train}} to train the functional componentwise classifier, \code{\link{dataf.*}} for functional data sets included in the package. } \examples{ \dontrun{ ## load the Growth dataset dataf = dataf.growth() learn = c(head(dataf$dataf, 49), tail(dataf$dataf, 34)) labels= c(head(dataf$labels, 49), tail(dataf$labels, 34)) test = tail(head(dataf$dataf, 59), 10) # elements 50:59. 5 girls, 5 boys #cross-validate over the whole variants up to dimension 3 c1 = ddalphaf.train (learn, labels, classifier.type = "ddalpha", maxNumIntervals = 3) classified1 = ddalphaf.classify(c1, test) print(unlist(classified1)) print(c1$adc.args) # cross-validate over these two variants c2 = ddalphaf.train (learn, labels, classifier.type = "ddalpha", adc.args = list( list(instance = "avr", numFcn = 1, numDer = 2), list(instance = "avr", numFcn = 0, numDer = 2))) classified2 = ddalphaf.classify(c2, test) print(unlist(classified2)) print(c2$adc.args) } } \keyword{ functional } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } \keyword{ classif } ddalpha/man/compclassf.classify.Rd0000644000176200001440000000337313162274365016676 0ustar liggesusers\name{compclassf.classify} \alias{compclassf.classify} \alias{predict.compclassf} \title{ Classify using Functional Componentwise Classifier } \description{ Classifies data using the functional componentwise classifier. } \usage{ compclassf.classify(compclassf, objectsf, subset, ...) \method{predict}{compclassf}(object, objectsf, subset, ...) } \arguments{ \item{compclassf, object}{ Functional componentwise classifier (obtained by \code{\link{compclassf.train}}). } \item{objectsf}{list containing lists (functions) of two vectors of equal length, named "args" and "vals": arguments sorted in ascending order and corresponding them values respectively } \item{subset}{ an optional vector specifying a subset of observations to be classified. } \item{\dots}{ additional parameters, passed to the classifier, selected with parameter \code{classifier.type} in \code{\link{compclassf.train}}. } } \value{ List containing class labels. } \references{ Delaigle, A., Hall, P., and Bathia, N. (2012). Componentwise classification and clustering of functional data. \emph{Biometrika} \bold{99} 299--313. } \seealso{ \code{\link{compclassf.train}} to train the functional componentwise classifier. } \examples{ \dontrun{ ## load the Growth dataset dataf = dataf.growth() learn = c(head(dataf$dataf, 49), tail(dataf$dataf, 34)) labels =c(head(dataf$labels, 49), tail(dataf$labels, 34)) test = tail(head(dataf$dataf, 59), 10) # elements 50:59. 5 girls, 5 boys c = compclassf.train (learn, labels, classifier.type = "ddalpha") classified = compclassf.classify(c, test) print(unlist(classified)) } } \keyword{ functional } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } \keyword{ classif }ddalpha/man/depth.space.spatial.Rd0000644000176200001440000000625112776660136016565 0ustar liggesusers\name{depth.space.spatial} \alias{depth.space.spatial} \title{ Calculate Depth Space using Spatial Depth } \description{ Calculates the representation of the training classes in depth space using spatial depth. } \usage{ depth.space.spatial(data, cardinalities, mah.estimate = "moment", mah.parMcd = 0.75) } \arguments{ \item{data}{ Matrix containing training sample where each row is a \eqn{d}-dimensional object, and objects of each class are kept together so that the matrix can be thought of as containing blocks of objects representing classes. } \item{cardinalities}{ Numerical vector of cardinalities of each class in \code{data}, each entry corresponds to one class. } \item{mah.estimate}{ is a character string specifying which estimates to use when calculating sample covariance matrix; can be \code{"none"}, \code{"moment"} or \code{"MCD"}, determining whether traditional moment or Minimum Covariance Determinant (MCD) (see \code{\link{covMcd}}) estimates for mean and covariance are used. By default \code{"moment"} is used. With \code{"none"} the non-affine invariant version of Spatial depth is calculated } \item{mah.parMcd}{ is the value of the argument \code{alpha} for the function \code{\link{covMcd}}; is used when \code{mah.estimate =} \code{"MCD"}. } } \details{ The depth representation is calculated in the same way as in \code{\link{depth.spatial}}, see 'References' for more information and details. } \value{ Matrix of objects, each object (row) is represented via its depths (columns) w.r.t. each of the classes of the training sample; order of the classes in columns corresponds to the one in the argument \code{cardinalities}. } \references{ Chaudhuri, P. (1996). On a geometric notion of quantiles for multivariate data. \emph{Journal of the Americal Statistical Association} \bold{91} 862--872. Koltchinskii, V.I. (1997). M-estimation, convexity and quantiles. \emph{The Annals of Statistics} \bold{25} 435--477. Serfling, R. (2006). Depth functions in nonparametric multivariate inference. In: Liu, R., Serfling, R., Souvaine, D. (eds.), \emph{Data Depth: Robust Multivariate Analysis, Computational Geometry and Applications}, American Mathematical Society, 1--16. Vardi, Y. and Zhang, C.H. (2000). The multivariate L1-median and associated data depth. \emph{Proceedings of the National Academy of Sciences, U.S.A.} \bold{97} 1423--1426. } \seealso{ \code{\link{ddalpha.train}} and \code{\link{ddalpha.classify}} for application, \code{\link{depth.spatial}} for calculation of spatial depth. } \examples{ # Generate a bivariate normal location-shift classification task # containing 20 training objects class1 <- mvrnorm(10, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(10, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) data <- rbind(class1, class2) # Get depth space using spatial depth depth.space.spatial(data, c(10, 10)) data <- getdata("hemophilia") cardinalities = c(sum(data$gr == "normal"), sum(data$gr == "carrier")) depth.space.spatial(data[,1:2], cardinalities) } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } ddalpha/man/depth.graph.Rd0000644000176200001440000000346113160003425015113 0ustar liggesusers\name{depth.graph} \alias{depth.graph} \title{ Depth Graph } \description{ Builds the data depth graphs for 2-dimensional data. The graph is built using \code{\link{persp}}. } \usage{ depth.graph(data, depth_f = c("halfspace", "Mahalanobis", "projection", "simplicial", "simplicialVolume", "spatial", "zonoid", "none"), apoint = NULL, main = depth_f, xlim = c(min(data[, 1]), max(data[, 1])), ylim = c(min(data[, 2]), max(data[, 2])), zlim = c(0, max(z)), xnum = 250, ynum = 250, theta=15, phi=60, bold = F, ...) } \arguments{ \item{data}{ 2-dimensional numeric data frame or matrix } \item{depth_f}{ the name of the depth function. The list of the supported depths and described in the topic \code{\link{depth.}}. } \item{apoint}{ a 2-dimensional point which is shown in black color. } \item{main}{ an overall title for the plot: see \code{\link{title}} } \item{xlim, ylim, zlim}{ numeric vectors of length 2, giving the x, y and z coordinates ranges: see \code{\link{plot.window}} } \item{xnum, ynum}{ number of points on each direction, x and y. Impacts the smoothness of the surface. } \item{theta, phi}{ rotation angles } \item{bold}{ draws bold points } \item{\dots}{ additional parameters passed to \code{\link{persp}} } } \seealso{ \code{\link{depth.}} \code{\link{persp}} } \examples{ \dontrun{ par(mfrow = c(2,3), mar = c(0,0,0,0), mai = c(0,0,0.2,0)) data(hemophilia) depth.graph(hemophilia, "none", xnum = 100, ynum = 100) depth.graph(hemophilia, "Mahalanobis", xnum = 100, ynum = 100) depth.graph(hemophilia, "halfspace", xnum = 100, ynum = 100) depth.graph(hemophilia, "projection", xnum = 100, ynum = 100) depth.graph(hemophilia, "zonoid", xnum = 100, ynum = 100) depth.graph(hemophilia, "spatial", xnum = 100, ynum = 100) } } \keyword{ visualization } ddalpha/man/depth.space.potential.Rd0000644000176200001440000001006413160003425017100 0ustar liggesusers\name{depth.space.potential} \alias{depth.space.potential} \title{ Calculate Potential Space } \description{ Calculates the representation of the training classes in potential space. } \usage{ depth.space.potential(data, cardinalities, pretransform = "NMom", kernel = "GKernel", kernel.bandwidth = NULL, mah.parMcd = 0.75) } \arguments{ \item{data}{ Matrix containing training sample where each row is a \eqn{d}-dimensional object, and objects of each class are kept together so that the matrix can be thought of as containing blocks of objects representing classes. } \item{cardinalities}{ Numerical vector of cardinalities of each class in \code{data}, each entry corresponds to one class. } \item{pretransform}{ The method of data scaling. \code{NULL} to use the original data, The data may be scaled jointly or separately: \code{1Mom} or \code{1MCD} for joint scaling of the classes, \code{NMom} or \code{NMCD} for separate scaling of the classes. You may use traditional moments or Minimum Covariance Determinant (MCD) estimates for mean and covariance: \code{1Mom} or \code{NMom} for scaling using traditional data moments, \code{1MCD} or \code{NMCD} for scaling using robust MCD data moments. } \item{kernel}{ \code{"EDKernel"} for the kernel of type 1/(1+kernel.bandwidth*EuclidianDistance2(x, y)), \code{"GKernel"} [default and recommended] for the simple Gaussian kernel, \code{"EKernel"} exponential kernel: exp(-kernel.bandwidth*EuclidianDistance(x, y)), %\code{"TriangleKernel"}, \code{"VarGKernel"} variable Gaussian kernel, where \code{kernel.bandwidth} is proportional to the \code{depth.zonoid} of a point. } \item{kernel.bandwidth}{ the bandwidth parameter of the kernel. If \code{NULL} - the Scott's rule of thumb is used. May be a single value for all classes, or a vector of values for each of the classes. } \item{mah.parMcd}{ is the value of the argument \code{alpha} for the function \code{\link{covMcd}}; is used when \code{pretransform = "*MCD"}. } } \details{ The potential representation is calculated in the same way as in \code{\link{depth.potential}}, see References below for more information and details. } \value{ Matrix of objects, each object (row) is represented via its potentials (columns) w.r.t. each of the classes of the training sample; order of the classes in columns corresponds to the one in the argument \code{cardinalities}. } \references{ Aizerman, M.A., Braverman, E.M., and Rozonoer, L.I. (1970). \emph{The Method of Potential Functions in the Theory of Machine Learning}. Nauka (Moscow). Pokotylo, O. and Mosler, K. (2015). Classification with the pot-pot plot. \emph{Mimeo}. } \seealso{ \code{\link{ddalpha.train}} and \code{\link{ddalpha.classify}} for application, \code{\link{depth.potential}} for calculation of the potential. } \examples{ # Generate a bivariate normal location-shift classification task # containing 20 training objects class1 <- mvrnorm(50, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(50, c(1,1), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) data <- rbind(class1, class2) plot(data, col = c(rep(1,50), rep(2,50))) # potential with rule of thumb bandwidth ds = depth.space.potential(data, c(50, 50)) # draw.ddplot(depth.space = ds, cardinalities = c(50, 50)) # potential with bandwidth = 0.5 and joint scaling ds = depth.space.potential(data, c(50, 50), kernel.bandwidth = 0.5, pretransform = "1Mom") # draw.ddplot(depth.space = ds, cardinalities = c(50, 50)) # potential with bandwidth = 0.5 and separate scaling ds = depth.space.potential(data, c(50, 50), kernel.bandwidth = 0.5, pretransform = "NahMom") # or without pretransform # draw.ddplot(depth.space = ds, cardinalities = c(50, 50)) data <- getdata("hemophilia") cardinalities = c(sum(data$gr == "normal"), sum(data$gr == "carrier")) ds = depth.space.potential(data[,1:2], cardinalities) # draw.ddplot(depth.space = ds, cardinalities = cardinalities) } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } ddalpha/man/L2metric.Rd0000644000176200001440000000336313162365543014407 0ustar liggesusers\name{L2metric} \alias{L2metric} \title{Fast Computation of the \eqn{L^2} Metric for Sets of Functional Data} \usage{ L2metric(A, B) } \arguments{ \item{A}{Functions of the first set, represented by a matrix of their functional values of size \code{m*d}. \code{m} stands for the number of functions, \code{d} is the number of the equi-distant points in the domain of the data at which the functional values of the \code{m} functions are evaluated.} \item{B}{Functions of the second set, represented by a matrix of their functional values of size \code{n*d}. \code{n} stands for the number of functions, \code{d} is the number of the equi-distant points in the domain of the data at which the functional values of the \code{n} functions are evaluated. The grid of observation points for the functions \code{A} and \code{B} must be the same.} } \value{ A symmetric matrix of the distances of the functions of size \code{m*n}. } \description{ Returns the matrix of \eqn{L^2} distances between two sets of functional data. } \details{ For two sets of functional data of sizes \code{m} and \code{n} represented by matrices of their functional values, this function returns the symmetric matrix of size \code{m*n} whose entry in the \code{i}-th row and \code{j}-th column is the approximated \eqn{L^2} distance of the \code{i}-th function from the first set, and the \code{j}-th function from the second set. This function is utilized in the computation of the h-mode depth. } \examples{ datapop = dataf2rawfd(dataf.population()$dataf,range=c(1950,2015),d=66) A = datapop[1:20,] B = datapop[21:50,] L2metric(A,B) } \seealso{ \code{\link{depthf.hM}} \code{\link{dataf2rawfd}} } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{functional} \keyword{metric} ddalpha/man/depth.sample.Rd0000644000176200001440000000263213160003425015272 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/depth.fd.R \name{depth.sample} \alias{depth.sample} \title{Fast Depth Computation for Univariate and Bivariate Random Samples} \usage{ depth.sample(A, B) } \arguments{ \item{A}{Univariate or bivariate points whose depth is computed, represented by a matrix of size \code{m*2}. \code{m} stands for the number of points, \code{d} is 1 for univariate and 2 for bivariate data.} \item{B}{Random sample points with respect to which the depth of \code{A} is computed. \code{B} is represented by a matrix of size \code{n*2}, where \code{n} is the sample size.} } \value{ Vector of length \code{m} of depth halfspace depth values is returned. } \description{ Faster implementation of the halfspace and the simplicial depth. Computes the depth of a whole random sample of a univariate or a bivariate data in one run. } \details{ The function returns vectors of sample halfspace and simplicial depth values. } \examples{ n = 100 m = 150 A = matrix(rnorm(2*n),ncol=2) B = matrix(rnorm(2*m),ncol=2) depth.sample(A,B) system.time(D1<-depth.halfspace(A,B)) system.time(D2<-depth.sample(A,B)) max(D1-D2$Half) A = rnorm(100) B = rnorm(150) depth.sample(A,B) # depth.halfspace(matrix(A,ncol=1),matrix(B,ncol=1)) } \seealso{ \code{\link{depth.halfspace}} \code{\link{depth.simplicial}} } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{depth} ddalpha/man/shape.fd.analysis.Rd0000644000176200001440000001421013162365544016232 0ustar liggesusers\name{shape.fd.analysis} \alias{shape.fd.analysis} \title{Diagnostic Plot for First and Second Order Integrated and Infimal Depths} \usage{ shape.fd.analysis(datafA, datafB, range = NULL, d = 101, order = 1, method = c("halfspace", "simplicial"), approx = 0, title = "", nfun = 10, plot = TRUE) } \arguments{ \item{datafA}{A single function whose depth is computed, represented by a \code{dataf} object of arguments and functional values.} \item{datafB}{Functional dataset with respect to which the depth of \code{datafA} is computed. \code{datafB} is represented by a \code{dataf} object of arguments and functional values. \code{n} stands for the number of functions. The grid of observation points for the functions in \code{datafA} and \code{datafB} may not be the same.} \item{range}{The common range of the domain where the functions \code{datafA} and \code{datafB} are observed. Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in \code{datafA} and \code{datafB}.} \item{d}{Grid size to which all the functional data are transformed. For depth computation, all functional observations are first transformed into vectors of their functional values of length \code{d} corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these points are reconstructed using linear interpolation, and extrapolation.} \item{order}{The order of the depth to be used in the plot, for \code{order=1} produces the plot of univariate marginal depth of \code{A} and \code{nfun} functions from \code{B} over the domain of the functions. For \code{order=2} produces the bivariate contour plot of the bivariate depths of \code{A} at couples of points from the domain.} \item{method}{The depth that is used in the diagnostic plot. possible values are \code{halfspace} for the halfspace depth, or \code{simplicial} for the simplicial depth.} \item{approx}{For \code{order=2}, the number of approximations used in the computation of the order extended depth. By default this is set to \code{0}, meaning that the depth is computed at all possible \code{d^2} combinations of the points in the domain. When set to a positive integer, \code{approx} bivariate points are randomly sampled in unit square, and at these points the bivariate depths of the corresponding functional values are computed.} \item{title}{The title of the diagnostic plot.} \item{nfun}{For \code{order=1}, the number of functions from \code{B} whose coordinate-wise univariate depths of functional values should be displayed with the depth of \code{A}. The depth of \code{A} is displayed in solid red line, the depths of the functions from \code{B} in dashed black.} \item{plot}{Logical: should the function by plotted?} } \value{ For \code{order=1} two depth values, and two vectors of pointwise depths: \itemize{ \item \code{Simpl_FD} the first order integrated depth based on the simplicial depth, \item \code{Half_FD} the first order integrated depth based on the halfspace depth, \item \code{Simpl_ID} the first order infimal depth based on the simplicial depth, \item \code{Half_ID} the first order infimal depth based on the halfspace depth, \item \code{PSD} the vector of length \code{d} containing the computed pointwise univariate simplicial depths used for the computation of \code{Simpl_FD} and \code{Simpl_ID}, \item \code{PHD} the vector of length \code{d} containing the computed pointwise univariate halfspace depths used for the computation of \code{Half_FD} and \code{Half_ID}. } In addition, the first order integrated / infimal depth diagnostic plot of the function \code{A} with respect to the random sample given by the functions corresponding to the rows of the matrix \code{B} is produced. For \code{order=2} four depth values, and two matrices of pointwise depths: \itemize{ \item \code{Simpl_FD} the second order integrated depth based on the simplicial depth, \item \code{Half_FD} the second order integrated depth based on the halfspace depth, \item \code{Simpl_ID} the second order infimal depth based on the simplicial depth, \item \code{Half_ID} the second order infimal depth based on the halfspace depth, \item \code{PSD} the matrix of size \code{d*d} containing the computed pointwise bivariate simplicial depths used for the computation of \code{Simpl_FD} and \code{Simpl_ID}, \item \code{PHD} the matrix of size \code{d*d} containing the computed pointwise bivariate halfspace depths used for the computation of \code{Half_FD} and \code{Half_ID}. } In addition, the second order integrated / infimal depth diagnostic plot of the function \code{A} with respect to the random sample given by the functions corresponding to the rows of the matrix \code{B} is produced. } \description{ Produce the diagnostic plot based on the fist or second order extended integrated / infimal depths. } \details{ Plots a diagnostic plot of pointwise univariate (or bivariate) depths for all possible points (or couples of points) from the domain of the functional data. From such a plot it is possible to infer into the first order (or second order) properties of a single function \emph{x} with respect to the given set of functional data. For \code{order=1}, the integral of the displayed function is the integrated depth of \emph{x}, the smallest value of the function is the infimal depth of \emph{x}. For \code{order=2}, the bivariate integral of the displayed surface gives the second order extended integrated depth of \emph{x}, the infimum of this bivariate function gives the second order infimal depth of \emph{x}. For details see Nagy et al. (2016) and \code{\link{depthf.fd1}}. } \examples{ datafA = dataf.population()$dataf[1] dataf = dataf.population()$dataf[2:20] shape.fd.analysis(datafA,dataf,order=1) shape.fd.analysis(datafA,dataf,order=2,approx=0) } \references{ Nagy, S., Gijbels, I. and Hlubinka, D. (2017). Depth-based recognition of shape outlying functions. \emph{Journal of Computational and Graphical Statistics}. To appear. } \seealso{ \code{\link{depthf.fd1}} } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{depth} \keyword{functional} \keyword{outlier} \keyword{plot} \keyword{shape} ddalpha/man/depthf.RP1.Rd0000644000176200001440000000677113162365543014607 0ustar liggesusers\name{depthf.RP1} \alias{depthf.RP1} \title{Univariate Random Projection Depths for Functional Data} \usage{ depthf.RP1(datafA, datafB, range = NULL, d = 101, nproj = 50, nproj2 = 5) } \arguments{ \item{datafA}{Functions whose depth is computed, represented by a \code{dataf} object of their arguments and functional values. \code{m} stands for the number of functions.} \item{datafB}{Random sample functions with respect to which the depth of \code{datafA} is computed. \code{datafB} is represented by a \code{dataf} object of their arguments and functional values. \code{n} is the sample size. The grid of observation points for the functions \code{datafA} and \code{datafB} may not be the same.} \item{range}{The common range of the domain where the functions \code{datafA} and \code{datafB} are observed. Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in \code{datafA} and \code{datafB}.} \item{d}{Grid size to which all the functional data are transformed. For depth computation, all functional observations are first transformed into vectors of their functional values of length \code{d} corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these points are reconstructed using linear interpolation, and extrapolation.} \item{nproj}{Number of projections taken in the computation of the random projection depth. By default taken to be \code{51}.} \item{nproj2}{Number of projections taken in the computation of the random functional depth. By default taken to be \code{5}. \code{nproj2} should be much smaller than \code{d}, the dimensionality of the discretized functional data.} } \value{ Three vectors of depth values of length \code{m} are returned: \itemize{ \item \code{Simpl_FD} the random projection depth based on the univariate simplicial depth, \item \code{Half_FD} the random projection depth based on the univariate halfspace depth, \item \code{RHalf_FD} the random halfspace depth. } } \description{ Random projection depth and random functional depth for functional data. } \details{ The function returns the vectors of sample random projection, and random functional depth values. The random projection depth described in Cuevas et al. (2007) is based on the average univariate depth of one-dimensional projections of functional data. The projections are taken randomly as a sample of standard normal \code{d}-dimensional random variables, where \code{d} stands for the dimensionality of the discretized functional data. The random functional depth (also called random Tukey depth, or random halfspace depth) is described in Cuesta-Albertos and Nieto-Reyes (2008). The functional data are projected into the real line in random directions as for the random projection depths. Afterwards, an approximation of the halfspace (Tukey) depth based on this limited number of univariate projections is assessed. } \examples{ datafA = dataf.population()$dataf[1:20] datafB = dataf.population()$dataf[21:50] depthf.RP1(datafA,datafB) } \references{ Cuevas, A., Febrero, M. and Fraiman, R. (2007). Robust estimation and classification for functional data via projection-based depth notions, \emph{Computational Statistics} \bold{22} (3), 481--496. Cuesta-Albertos, J.A. and Nieto-Reyes, A. (2008). The random Tukey depth. \emph{Computational Statistics & Data Analysis} \bold{52} (11), 4979--4988. } \seealso{ \code{\link{depthf.RP2}} } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{depth} \keyword{functional} ddalpha/man/depth.space.projection.Rd0000644000176200001440000000704713160003425017264 0ustar liggesusers\name{depth.space.projection} \alias{depth.space.projection} \title{ Calculate Depth Space using Projection Depth } \description{ Calculates the representation of the training classes in depth space using projection depth. } \usage{ depth.space.projection(data, cardinalities, method = "random", num.directions = 1000, seed = 0) } \arguments{ \item{data}{ Matrix containing training sample where each row is a \eqn{d}-dimensional object, and objects of each class are kept together so that the matrix can be thought of as containing blocks of objects representing classes. } \item{cardinalities}{ Numerical vector of cardinalities of each class in \code{data}, each entry corresponds to one class. } \item{method}{ to be used in calculations. \code{"random"} Here the depth is determined as the minimum univariate depth of the data projected on lines in several directions. The directions are distributed uniformly on the \eqn{(d-1)}-sphere; the same direction set is used for all points. \code{"linearize"} The Nelder-Mead method for function minimization, taken from Olsson, Journal of Quality Technology, 1974, 6, 56. R-codes of this function were written by Subhajit Dutta. } \item{num.directions}{ Number of random directions to be generated for \code{method = "random"}. With the growth of n the complexity grows linearly for the same number of directions. } \item{seed}{ the random seed. The default value \code{seed=0} makes no changes. } } \details{ The depth representation is calculated in the same way as in \code{\link{depth.projection}}, see 'References' for more information and details. } \value{ Matrix of objects, each object (row) is represented via its depths (columns) w.r.t. each of the classes of the training sample; order of the classes in columns corresponds to the one in the argument \code{cardinalities}. } \references{ Donoho, D.L. (1982). \emph{Breakdown properties of multivariate location estimators}. Ph.D. qualifying paper. Department of Statistics, Harvard University. Liu, R.Y. (1992). Data depth and multivariate rank tests. In: Dodge, Y. (ed.), L1-Statistics and Related Methods, North-Holland (Amsterdam), 279--294. Liu, X. and Zuo, Y. (2014). Computing projection depth and its associated estimators. \emph{Statistics and Computing} \bold{24} 51--63. Stahel, W.A. (1981). \emph{Robust estimation: infinitesimal optimality and covariance matrix estimators}. Ph.D. thesis (in German). Eidgenossische Technische Hochschule Zurich. Zuo, Y.J. and Lai, S.Y. (2011). Exact computation of bivariate projection depth and the Stahel-Donoho estimator. \emph{Computational Statistics and Data Analysis} \bold{55} 1173--1179. } \seealso{ \code{\link{ddalpha.train}} and \code{\link{ddalpha.classify}} for application, \code{\link{depth.projection}} for calculation of projection depth. } \examples{ # Generate a bivariate normal location-shift classification task # containing 20 training objects class1 <- mvrnorm(10, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(10, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) data <- rbind(class1, class2) # Get depth space using projection depth depth.space.projection(data, c(10, 10), method = "random", num.directions = 1000) depth.space.projection(data, c(10, 10), method = "linearize") data <- getdata("hemophilia") cardinalities = c(sum(data$gr == "normal"), sum(data$gr == "carrier")) depth.space.projection(data[,1:2], cardinalities) } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } ddalpha/man/resetPar.Rd0000644000176200001440000000106613160003425014473 0ustar liggesusers\name{resetPar} \alias{resetPar} \title{ Reset Graphical Parameters } \description{ The function returns the default graphical parameters for \code{\link{par}}. } \usage{ resetPar() } \details{ The returned parameters are used as input parameters for \code{\link{par}}. } \value{ The list of graphical parameters described in the 'Graphical Parameters' section of \code{\link{par}}. } \examples{ par(mfrow = c(1,2), mar = c(2,2,2,2)) plot(sin, -pi, 2*pi) plot(cos, -pi, 2*pi) par(resetPar()) plot(sin, -pi, 2*pi) plot(cos, -pi, 2*pi) } \keyword{ visualization } ddalpha/man/dataf.sim.2.CFF07.Rd0000644000176200001440000000414012776660136015500 0ustar liggesusers\name{dataf.sim.2.CFF07} \alias{dataf.sim.2.CFF07} \title{ Model 2 from Cuevas et al. (2007) } \description{ Model 2 from Cuevas et al. (2007) Processes: \cr X(t) = m_0(t) + e(t), m_0(t) = 30*(1-t)*t^2 + 0.5*abs(sin(20*pi*t)) \cr Y(t) = an 8-knot spline approximation of X \cr e(t): Gaussian with mean = 0, cov(X(s), X(t)) = 0.2*exp(-abs(s - t)/0.3)\cr the processes are discretized at \code{numDiscrets} equally distant points on [0, 1]. } \usage{ dataf.sim.2.CFF07(numTrain = 100, numTest = 50, numDiscrets = 51, plot = FALSE) } \arguments{ \item{numTrain}{ number of objects in the training sample } \item{numTest}{ number of objects in the test sample } \item{numDiscrets}{ number of points for each object } \item{plot}{ if TRUE the training sample is plotted } } \format{ A data strusture containing \code{$learn} and \code{$test} functional data. The functional data are given as data structures. \describe{ \item{\code{dataf}}{ The functional data as a list of objects. Each object is characterized by two coordinates. \describe{ \item{\code{args}}{a numeric vector} \item{\code{vals}}{a numeric vector} } } \item{\code{labels}}{The classes of the objects: 0 for X(t), 1 for Y(t)} } } \source{ Cuevas, A., Febrero, M. and Fraiman, R. (2007). Robust estimation and classification for functional data via projection-based depth notions. Computational Statistics 22 481-496. } \seealso{ \code{\link{dataf.*}} for other functional data sets \code{\link{plot.functional}} for building plots of functional data } \examples{ ## load the dataset dataf = dataf.sim.2.CFF07(numTrain = 100, numTest = 50, numDiscrets = 51) learn = dataf$learn test = dataf$test ## view the classes unique(learn$labels) ## access the 5th point of the 2nd object learn$dataf[[2]]$args[5] learn$dataf[[2]]$vals[5] \dontrun{ ## plot the data plot(learn) plot(test) ## or dataf = dataf.sim.2.CFF07(numTrain = 100, numTest = 50, numDiscrets = 51, plot = TRUE) } } \keyword{datasets} \keyword{functional} ddalpha/man/ddalphaf.getErrorRateCV.Rd0000644000176200001440000000432213160003425017304 0ustar liggesusers\name{ddalphaf.getErrorRateCV} \alias{ddalphaf.getErrorRateCV} \title{ Test Functional DD-Classifier } \description{ Performs a cross-validation procedure over the given data. On each step every \code{numchunks} observation is removed from the data, the functional DD-classifier is trained on these data and tested on the removed observations. } \usage{ ddalphaf.getErrorRateCV (dataf, labels, numchunks = 10, disc.type = c("LS", "comp"), ...) } \arguments{ \item{dataf}{ list containing lists (functions) of two vectors of equal length, named "args" and "vals": arguments sorted in ascending order and corresponding them values respectively } \item{labels}{ list of output labels of the functional observations } \item{numchunks}{ number of subsets of testing data. Equals to the number of times the classifier is trained. } \item{disc.type}{ type of the used discretization scheme. "LS" for \code{\link{ddalphaf.train}}, "comp" for for \code{\link{compclassf.train}} } \item{\dots}{ additional parameters passed to \code{\link{ddalphaf.train}} } } \value{ \item{errors}{ the part of incorrectly classified data } \item{time}{ the mean training time } \item{time_sd}{ the standard deviation of training time } } \seealso{ \code{\link{ddalphaf.train}} to train the functional DD\eqn{\alpha}-classifier, \code{\link{ddalphaf.classify}} for classification using functional DD\eqn{\alpha}-classifier, \code{\link{ddalphaf.test}} to test the functional DD-classifier on particular learning and testing data, \code{\link{ddalphaf.getErrorRatePart}} to perform a benchmark study of the functional DD-classifier on particular data. } \examples{ # load the fdata df = dataf.growth() stat <- ddalphaf.getErrorRateCV(dataf = df$dataf, labels = df$labels, numchunks = 5, adc.args = list(instance = "avr", numFcn = 2, numDer = 2)) cat("Classification error rate: ", stat$errors, ".\n", sep = "") } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ benchmark } ddalpha/man/depth.simplicialVolume.Rd0000644000176200001440000000633213160003425017330 0ustar liggesusers\name{depth.simplicialVolume} \alias{depth.simplicialVolume} \title{ Calculate Simplicial Volume Depth } \description{ Calculates the simpicial volume depth of points w.r.t. a multivariate data set. } \usage{ depth.simplicialVolume(x, data, exact = F, k = 0.05, seed = 0) } \arguments{ \item{x}{ Matrix of objects (numerical vector as one object) whose depth is to be calculated; each row contains a \eqn{d}-variate point. Should have the same dimension as \code{data}. } \item{data}{ Matrix of data where each row contains a \eqn{d}-variate point, w.r.t. which the depth is to be calculated. } \item{exact}{ \code{exact=F} (by default) implies the approximative algorithm, considering \code{k} simplices, \code{exact=T} implies the exact algorithm. } \item{k}{ Number (\eqn{k>1}) or portion (if \eqn{01}, then the algorithmic complexity is polynomial in \eqn{d} but is independent of the number of observations in \code{data}, given \eqn{k}. If \eqn{0_validate}{ validates parameters passed to \code{\link{ddalpha.train}} and passes them to the \code{ddalpha} object. \tabular{ll}{IN:\cr \code{ddalpha} \tab {the ddalpha object, containing the data and settings (mandatory)}\cr \code{} \tab {parameters that are passed to the user-defined method}\cr \code{...} \tab {other parameters (mandatory)} %} \tabular{ll}{ \cr OUT:\cr \code{list()} \tab {list of output parameters, after the validation is finished, these parameters are stored in the \code{ddalpha} object} } } \item{._learn}{ trains the depth \tabular{ll}{IN:\cr \code{ddalpha} \tab {the ddalpha object, containing the data and settings} %} \tabular{ll}{ \cr MODIFIES:\cr \code{ddalpha} \tab store the calculated statistics in the \code{ddalpha} object \cr depths \tab calculate the depths of each pattern, e.g. \cr \tab \code{for (i in 1:ddalpha$numPatterns) ddalpha$patterns[[i]]$depths = ._depths(ddalpha, ddalpha$patterns[[i]]$points)} %} \tabular{ll}{ \cr OUT:\cr \code{ddalpha} \tab {the updated \code{ddalpha} object} } } \item{._depths}{ calculates the depths \tabular{ll}{IN:\cr \code{ddalpha} \tab {the ddalpha object, containing the data and settings} \cr \code{objects} \tab {the objects for which the depths are calculated} \cr \cr OUT:\cr \code{depths} \tab {the calculated depths for each object (rows), with respect to each class (cols)} } } } Usage: \code{ddalpha.train(data, depth = "", , ...)} \verb{ #### Custom depths #### .MyDepth_validate <- function(ddalpha, mydepth.parameter = "value", ...){ print("MyDepth validating") # validate the parameters if (!is.valid(mydepth.parameter)){ warning("Argument \"mydepth.parameter\" not specified correctly. Default value is used") mydepth.parameter = "value" # or stop("Argument \"mydepth.parameter\" not specified correctly.") } # the values from the return list will be stored in the ddalpha object return (list(mydepthpar = mydepth.parameter)) } .MyDepth_learn <- function(ddalpha){ print("MyDepth learning") #1. Calculate any statistics based on data that .MyDepth_depths needs # and store them to the ddalpha object: ddalpha$mydepth.statistic = "some value" #2. Calculate depths for each pattern for (i in 1:ddalpha$numPatterns){ ddalpha$patterns[[i]]$depths = .MyDepth_depths(ddalpha, ddalpha$patterns[[i]]$points) } return(ddalpha) } .MyDepth_depths <- function(ddalpha, objects){ print("MyDepth calculating") depths <- NULL # The depth parameters are accessible in the ddalpha object: mydepth.parameter = ddalpha$mydepth.parameter mydepth.statistic = ddalpha$mydepth.statistic #calculate the depths of the objects w.r.t. each pattern for (i in 1:ddalpha$numPatterns){ depth_wrt_i = #calculate depths of the objects, as vector depths <- cbind(depths, depth_wrt_i) } return (depths) } ddalpha.train(data, depth = "MyDepth", ...) } \bold{To define a classifier:} \describe{ \item{._validate}{ validates parameters passed to \code{\link{ddalpha.train}} and passes them to the \code{ddalpha} object \tabular{ll}{IN:\cr \code{ddalpha} \tab {the ddalpha object, containing the data and settings (mandatory)}\cr \code{} \tab {parameters that are passed to the user-defined method}\cr \code{...} \tab {other parameters (mandatory)} \cr OUT:\cr \code{list()} \tab {list of output parameters, after the validation is finished, these parameters are stored in the \code{ddalpha} object. In case of a multiclass classifier the validator must return \code{methodSeparatorBinary = F} and/or pass \code{aggregation.method = "none"} to \code{ddalpha.train}} } } \item{._learn}{ trains the classifier. Is different for binnary and mylticlass classifiers. \tabular{ll}{IN:\cr \code{ddalpha} \tab {the ddalpha object, containing the data and settings}\cr \code{index1} \tab {(only for binary) index of the first class}\cr \code{index2} \tab {(only for binary) index of the second class}\cr \code{depths1} \tab {(only for binary) depths of the first class w.r.t. all classes}\cr \code{depths2} \tab {(only for binary) depths of the second class w.r.t. all classes}\cr\cr \tab depths w.r.t. only given classes are received by \code{depths1[,c(index1, index2)]}\cr\cr \tab for the multiclass classifiers the depths are accessible via \code{ddalpha$patterns[[i]]$depths} \cr OUT:\cr \code{classifier} \tab { the trained \code{classifier} object} } } \item{._classify}{ classifies the objects \tabular{ll}{IN:\cr \code{ddalpha} \tab {the ddalpha object, containing the data and global settings} \cr \code{classifier} \tab {the previously trained classifier}\cr \code{objects} \tab {the objects (depths) that are classified} \cr \cr OUT:\cr \code{result} \tab { a vector with classification results}\cr \tab {(binary) the objects from class \code{"classifier$index1"} get positive values} \cr \tab {(multiclass) the objects get the numbers of patterns in \code{ddalpha}} } } } Usage: \code{ddalpha.train(data, separator = "", ...)} \verb{ #### Custom classifiers #### .MyClassifier_validate <- function(ddalpha, my.parameter = "value", ...){ print("MyClassifier validating") # validate the parameters ... # always include methodSeparatorBinary. # TRUE for the binary classifier, FALSE otherwise return(list(methodSeparatorBinary = T, my.parameter = my.parameter )) } # a binary classifier # the package takes care of the voting procedures. Just train it as if there are only two classes .MyClassifier_learn <- function(ddalpha, index1, index2, depths1, depths2){ print("MyClassifier (binary) learning") # The parameters are accessible in the ddalpha object: my.parameter = ddalpha$my.parameter #depths w.r.t. only given classes are received by depths1[,c(index1, index2)] depths2[,c(index1, index2)] # train the classifier classifier <- ... #return the needed values in a list, e.g. return(list( coefficients = classifier$coefficients, ... )) } # a multiclass classifier .MyClassifier_learn <- function(ddalpha){ print("MyClassifier (multiclass) learning") # access the data through the ddalpha object, e.g. for (i in 1:ddalpha$numPatterns){ depth <- ddalpha$patterns[[i]]$depths number <- ddalpha$patterns[[i]]$cardinality ... } # train the classifier classifier <- ... # return the classifier return(classifier) } # the interface of the classify function is equal for binary and multiclass classifiers .MyClassifier_classify <- function(ddalpha, classifier, depths){ print("MyClassifier classifying") # The global parameters are accessible in the ddalpha object: my.parameter = ddalpha$my.parameter # The parameters generated by .MyClassifier_learn are accessible in the classifier object: classifier$coefficients # here are the depths w.r.t. the first class depths[,classifier$index1] # here are the depths w.r.t. the second class depths[,classifier$index2] # fill results in a vector, so that: # (binary) the objects from class "classifier$index1" get positive values # (multiclass) the objects get the numbers of patterns in ddalpha result <- ... return(result) } ddalpha.train(data, separator = "MyClassifier", ...) } } %\value{ %% ~Describe the value returned %% If it is a LIST, use %% \item{comp1 }{Description of 'comp1'} %% \item{comp2 }{Description of 'comp2'} %% ... %} %\references{ %% ~put references to the literature/web site here ~ %} %\author{ %% ~~who you are~~ %} %% ~Make other sections like Warning with \section{Warning }{....} ~ \seealso{ \code{\link{ddalpha.train}} } \examples{ \dontrun{ #### example: Euclidean depth #### #.Euclidean_validate is basically not needed .Euclidean_learn <- function(ddalpha){ print("Euclidean depth learning") #1. Calculate any statistics based on data that .MyDepth_depths needs # and store them to the ddalpha object: for (i in 1:ddalpha$numPatterns){ ddalpha$patterns[[i]]$center <- colMeans(ddalpha$patterns[[i]]$points) } #2. Calculate depths for each pattern for (i in 1:ddalpha$numPatterns){ ddalpha$patterns[[i]]$depths = .Euclidian_depths(ddalpha, ddalpha$patterns[[i]]$points) } return(ddalpha) } .Euclidean_depths <- function(ddalpha, objects){ print("Euclidean depth calculating") depths <- NULL #calculate the depths of the objects w.r.t. each pattern for (i in 1:ddalpha$numPatterns){ # The depth parameters are accessible in the ddalpha object: center = ddalpha$patterns[[i]]$center depth_wrt_i <- 1/(1 + colSums((t(objects) - center)^2)) depths <- cbind(depths, depth_wrt_i) } return (depths) } #### example: binary decision tree #### library(rpart) .tree_validate <- function(ddalpha, ...){ print("tree validating") return(list(methodSeparatorBinary = T)) } # a binary classifier # the package takes care of the voting procedures. Just train it as if there are only two classes .tree_learn <- function(ddalpha, index1, index2, depths1, depths2){ print("tree learning") # prepare the data data = as.data.frame(cbind( (rbind(depths1, depths2)), c(rep(1, times = nrow(depths1)), rep(-1, times = nrow(depths1))))) names(data) <- paste0("V",seq_len(ncol(data))) names(data)[ncol(data)] <- "O" # train the classifier classifier <- rpart(O~., data = data) #return the needed values in a list, e.g. return(classifier) } # the interface of the classify function is equal for binary and multiclass classifiers .tree_classify <- function(ddalpha, classifier, depths){ print("tree classifying") # fill results in a vector, so that the objects from class "classifier$index1" get positive values data = as.data.frame(depths) names(data) <- paste0("V",seq_len(ncol(data))) result <- predict(classifier, as.data.frame(depths), type = "vector") return(result) } #### checking #### library(ddalpha) data = getdata("hemophilia") ddalpha = ddalpha.train(data = data, depth = "Euclidean", separator = "tree") c = ddalpha.classify(ddalpha, data[,1:2]) errors = sum(unlist(c) != data[,3])/nrow(data) print(paste("Error rate: ",errors)) # building the depth contours using the custom depth depth.contours.ddalpha(ddalpha, asp = T, levels = seq(0.5, 1, length.out = 10)) } } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ depth } \keyword{ classif } \keyword{ custom } ddalpha/man/depthf.fd1.Rd0000644000176200001440000001120513162365544014644 0ustar liggesusers\name{depthf.fd1} \alias{depthf.fd1} \title{Univariate Integrated and Infimal Depth for Functional Data} \usage{ depthf.fd1(datafA, datafB, range = NULL, d = 101, order = 1, approx = 0) } \arguments{ \item{datafA}{Functions whose depth is computed, represented by a \code{dataf} object of their arguments and functional values. \code{m} stands for the number of functions.} \item{datafB}{Random sample functions with respect to which the depth of \code{datafA} is computed. \code{datafB} is represented by a \code{dataf} object of their arguments and functional values. \code{n} is the sample size. The grid of observation points for the functions \code{datafA} and \code{datafB} may not be the same.} \item{range}{The common range of the domain where the functions \code{datafA} and \code{datafB} are observed. Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in \code{datafA} and \code{datafB}.} \item{d}{Grid size to which all the functional data are transformed. For depth computation, all functional observations are first transformed into vectors of their functional values of length \code{d} corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these points are reconstructed using linear interpolation, and extrapolation, see Nagy et al. (2016).} \item{order}{The order of the order extended integrated and infimal depths. By default, this is set to \code{1}, meaning that the usual univariate depths of the functional values are computed. For \code{order=2} or \code{3}, the second and the third order extended integrated and infimal depths are computed, respectively.} \item{approx}{Number of approximations used in the computation of the order extended depth for \code{order} greater than \code{1}. For \code{order=2}, the default value is set to \code{0}, meaning that the depth is computed at all possible \code{d^order} combinations of the points in the domain. For \code{order=3}, the default value is set to \code{101}. When \code{approx} is a positive integer, \code{approx} points are randomly sampled in \code{[0,1]^order} and at these points the \code{order}-variate depths of the corresponding functional values are computed.} } \value{ Four vectors of length \code{m} of depth values are returned: \itemize{ \item \code{Simpl_FD} the integrated depth based on the simplicial depth, \item \code{Half_FD} the integrated depth based on the halfspace depth, \item \code{Simpl_ID} the infimal depth based on the simplicial depth, \item \code{Half_ID} the infimal depth based on the halfspace depth. } In addition, two vectors of length \code{m} of the relative area of smallest depth values is returned: \itemize{ \item \code{Simpl_IA} the proportions of points at which the depth \code{Simpl_ID} was attained, \item \code{Half_IA} the proportions of points at which the depth \code{Half_ID} was attained. } The values \code{Simpl_IA} and \code{Half_IA} are always in the interval [0,1]. They introduce ranking also among functions having the same infimal depth value - if two functions have the same infimal depth, the one with larger infimal area \code{IA} is said to be less central. For \code{order=2} and \code{m=1}, two additional matrices of pointwise depths are also returned: \itemize{ \item \code{PSD} the matrix of size \code{d*d} containing the computed pointwise bivariate simplicial depths used for the computation of \code{Simpl_FD} and \code{Simpl_ID}, \item \code{PHD} the matrix of size \code{d*d} containing the computed pointwise bivariate halfspace depths used for the computation of \code{Half_FD} and \code{Half_ID}. } For \code{order=3}, only \code{Half_FD} and \code{Half_ID} are provided. } \description{ Usual, and order extended integrated and infimal depths for real-valued functional data based on the halfspace and simplicial depth. } \details{ The function returns vectors of sample integrated and infimal depth values. } \examples{ datafA = dataf.population()$dataf[1:20] datafB = dataf.population()$dataf[21:50] depthf.fd1(datafA,datafB) depthf.fd1(datafA,datafB,order=2) depthf.fd1(datafA,datafB,order=3,approx=51) } \references{ Nagy, S., Gijbels, I. and Hlubinka, D. (2016). Weak convergence of discretely observed functional data with applications. \emph{Journal of Multivariate Analysis}, \bold{146}, 46--62. Nagy, S., Gijbels, I. and Hlubinka, D. (2017). Depth-based recognition of shape outlying functions. \emph{Journal of Computational and Graphical Statistics}. To appear. } \seealso{ \code{\link{depthf.fd2}}, \code{\link{infimalRank}} } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{depth} \keyword{functional} ddalpha/man/dknn.classify.trained.Rd0000644000176200001440000000542713160003425017106 0ustar liggesusers\name{dknn.classify.trained} \alias{dknn.classify.trained} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Depth-Based kNN } \description{ The implementation of the affine-invariant depth-based kNN of Paindaveine and Van Bever (2015). } \usage{ dknn.classify.trained(objects, dknn) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{objects}{ Matrix containing objects to be classified; each row is one \eqn{d}-dimensional object. } \item{dknn}{ Dknn-classifier (obtained by \code{\link{dknn.train}}). } } %\details{ %% ~~ If necessary, more details than the description above ~~ %} \value{ List containing class labels, or character string "Ignored" for the outsiders if "Ignore" was specified as the outsider treating method. } \references{ Paindaveine, D. and Van Bever, G. (2015). Nonparametrically consistent depth-based classifiers. \emph{Bernoulli} \bold{21} 62--82. } %\note{ %% ~~further notes~~ %} %% ~Make other sections like Warning with \section{Warning }{....} ~ \seealso{ \code{\link{dknn.train}} to train the Dknn-classifier. \code{\link{dknn.classify}} to classify with the Dknn-classifier. \code{\link{ddalpha.train}} to train the DD\eqn{\alpha}-classifier. \code{\link{ddalpha.getErrorRateCV}} and \code{\link{ddalpha.getErrorRatePart}} to get error rate of the Dknn-classifier on particular data (set \code{separator = "Dknn"}). } \examples{ # Generate a bivariate normal location-shift classification task # containing 200 training objects and 200 to test with class1 <- mvrnorm(200, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(200, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) trainIndices <- c(1:100) testIndices <- c(101:200) propertyVars <- c(1:2) classVar <- 3 trainData <- rbind(cbind(class1[trainIndices,], rep(1, 100)), cbind(class2[trainIndices,], rep(2, 100))) testData <- rbind(cbind(class1[testIndices,], rep(1, 100)), cbind(class2[testIndices,], rep(2, 100))) data <- list(train = trainData, test = testData) # Train the classifier # and get the classification error rate cls <- dknn.train(data$train, kMax = 20, depth = "Mahalanobis") cls$k classes1 <- dknn.classify.trained(data$test[,propertyVars], cls) cat("Classification error rate: ", sum(unlist(classes1) != data$test[,classVar])/200) # Classify the new data based on the old ones in one step classes2 <- dknn.classify(data$test[,propertyVars], data$train, k = cls$k, depth = "Mahalanobis") cat("Classification error rate: ", sum(unlist(classes2) != data$test[,classVar])/200) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ multivariate } \keyword{ nonparametric } \keyword{ classif }ddalpha/man/depth.space.Mahalanobis.Rd0000644000176200001440000000634612776660136017353 0ustar liggesusers\name{depth.space.Mahalanobis} \alias{depth.space.Mahalanobis} \title{ Calculate Depth Space using Mahalanobis Depth } \description{ Calculates the representation of the training classes in depth space using Mahalanobis depth. } \usage{ depth.space.Mahalanobis(data, cardinalities, mah.estimate = "moment", mah.parMcd = 0.75) } \arguments{ \item{data}{ Matrix containing training sample where each row is a \eqn{d}-dimensional object, and objects of each class are kept together so that the matrix can be thought of as containing blocks of objects representing classes. } \item{cardinalities}{ Numerical vector of cardinalities of each class in \code{data}, each entry corresponds to one class. } \item{mah.estimate}{ is a character string specifying which estimates to use when calculating the Mahalanobis depth; can be \code{"moment"} or \code{"MCD"}, determining whether traditional moment or Minimum Covariance Determinant (MCD) (see \code{\link{covMcd}}) estimates for mean and covariance are used. By default \code{"moment"} is used. } \item{mah.parMcd}{ is the value of the argument \code{alpha} for the function \code{\link{covMcd}}; is used when \code{mah.estimate =} \code{"MCD"}. } } \details{ The depth representation is calculated in the same way as in \code{\link{depth.Mahalanobis}}, see 'References' for more information and details. } \value{ Matrix of objects, each object (row) is represented via its depths (columns) w.r.t. each of the classes of the training sample; order of the classes in columns corresponds to the one in the argument \code{cardinalities}. } \references{ Mahalanobis, P. (1936). On the generalized distance in statistics. \emph{Proceedings of the National Academy India} \bold{12} 49--55. Liu, R.Y. (1992). Data depth and multivariate rank tests. In: Dodge, Y. (ed.), \emph{L1-Statistics and Related Methods}, North-Holland (Amsterdam), 279--294. Lopuhaa, H.P. and Rousseeuw, P.J. (1991). Breakdown points of affine equivariant estimators of multivariate location and covariance matrices. \emph{The Annals of Statistics} \bold{19} 229--248. Rousseeuw, P.J. and Leroy, A.M. (1987). Robust Regression and Outlier Detection. John Wiley & Sons (New York). Zuo, Y.J. and Serfling, R. (2000). General notions of statistical depth function. \emph{The Annals of Statistics} \bold{28} 461--482. } \seealso{ \code{\link{ddalpha.train}} and \code{\link{ddalpha.classify}} for application, \code{\link{depth.Mahalanobis}} for calculation of Mahalanobis depth. } \examples{ # Generate a bivariate normal location-shift classification task # containing 20 training objects class1 <- mvrnorm(10, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(10, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) data <- rbind(class1, class2) # Get depth space using Mahalanobis depth depth.space.Mahalanobis(data, c(10, 10)) depth.space.Mahalanobis(data, c(10, 10), mah.estimate = "MCD", mah.parMcd = 0.75) data <- getdata("hemophilia") cardinalities = c(sum(data$gr == "normal"), sum(data$gr == "carrier")) depth.space.Mahalanobis(data[,1:2], cardinalities) } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } ddalpha/man/dataf..Rd0000644000176200001440000000245413160003425014045 0ustar liggesusers\name{dataf.*} \alias{dataf.*} \docType{data} \title{ Functional Data Sets } \description{ The functions generate data sets of functional two-dimensional data of two or more classes. } \usage{ # dataf.[name]() } \format{ The functional data as a data structure. \describe{ \item{\code{dataf}}{ The functional data as a list of objects. Each object is characterized by two coordinates \describe{ \item{\code{args}}{The arguments vector} \item{\code{vals}}{The values vector} } } \item{\code{labels}}{The classes of the objects} } } \details{ More details about the datasets in the topics: \code{\link{dataf.geneexp}} \code{\link{dataf.growth}} \code{\link{dataf.medflies}} \code{\link{dataf.population}} \code{\link{dataf.population2010}} \code{\link{dataf.tecator}} \code{\link{dataf.tecator}} The following datasets provide simulated data: \code{\link{dataf.sim.1.CFF07}} \code{\link{dataf.sim.2.CFF07}} } \seealso{ \code{\link{plot.functional}} for building plots of functional data } \examples{ ## load the Growth dataset dataf = dataf.growth() ## view the classes unique(dataf$labels) ## access the 5th point of the 2nd object dataf$dataf[[2]]$args[5] dataf$dataf[[2]]$vals[5] \dontrun{plot.functional(dataf)} } \keyword{datasets} \keyword{functional} ddalpha/man/ddalpha.test.Rd0000644000176200001440000000540613160003425015263 0ustar liggesusers\name{ddalpha.test} \alias{ddalpha.test} \title{ Test DD-Classifier } \description{ Trains DD-classifier on the learning sequence of the data and tests it on the testing sequence. } \usage{ ddalpha.test(learn, test, ...) } \arguments{ \item{learn}{ the learning sequence of the data. Matrix containing training sample where each of \eqn{n} rows is one object of the training sample where first \eqn{d} entries are inputs and the last entry is output (class label). } \item{test}{ the testing sequence. Has the same format as \code{learn} } \item{\dots}{ additional parameters passed to \code{\link{ddalpha.train}} } } \value{ \item{error}{ the part of incorrectly classified data } \item{correct}{ the number of correctly classified objects } \item{incorrect}{ the number of incorrectly classified objects } \item{total}{ the number of classified objects } \item{ignored}{ the number of ignored objects (outside the convex hull of the learning data) } \item{n}{ the number of objects in the testing sequence } \item{time}{ training time } } \seealso{ \code{\link{ddalpha.train}} to train the DD-classifier, \code{\link{ddalpha.classify}} for classification using DD-classifier, \code{\link{ddalpha.getErrorRateCV}} and \code{\link{ddalpha.getErrorRatePart}} to get error rate of the DD-classifier on particular data. } \examples{ # Generate a bivariate normal location-shift classification task # containing 200 training objects and 200 to test with class1 <- mvrnorm(200, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(200, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) trainIndices <- c(1:100) testIndices <- c(101:200) propertyVars <- c(1:2) classVar <- 3 trainData <- rbind(cbind(class1[trainIndices,], rep(1, 100)), cbind(class2[trainIndices,], rep(2, 100))) testData <- rbind(cbind(class1[testIndices,], rep(1, 100)), cbind(class2[testIndices,], rep(2, 100))) data <- list(train = trainData, test = testData) # Train 1st DDalpha-classifier (default settings) # and get the classification error rate stat <- ddalpha.test(data$train, data$test) cat("1. Classification error rate (defaults): ", stat$error, ".\n", sep = "") # Train 2nd DDalpha-classifier (zonoid depth, maximum Mahalanobis # depth classifier with defaults as outsider treatment) # and get the classification error rate stat2 <- ddalpha.test(data$train, data$test, depth = "zonoid", outsider.methods = "depth.Mahalanobis") cat("2. Classification error rate (depth.Mahalanobis): ", stat2$error, ".\n", sep = "") } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ benchmark } ddalpha/man/depth.potential.Rd0000644000176200001440000000766313160003425016021 0ustar liggesusers\name{depth.potential} \alias{depth.potential} \title{ Calculate Potential of the Data } \description{ Calculate the potential of the points w.r.t. a multivariate data set. The potential is the kernel-estimated density multiplied by the prior probability of a class. Different from the data depths, a density estimate measures at a given point how much mass is located around it. } \usage{ depth.potential (x, data, pretransform = "1Mom", kernel = "GKernel", kernel.bandwidth = NULL, mah.parMcd = 0.75) } \arguments{ \item{x}{ Matrix of objects (numerical vector as one object) whose depth is to be calculated; each row contains a \eqn{d}-variate point. Should have the same dimension as \code{data}. } \item{data}{ Matrix of data where each row contains a \eqn{d}-variate point, w.r.t. which the depth is to be calculated. } \item{pretransform}{ The method of data scaling. \code{NULL} to use the original data, \code{1Mom} or \code{NMom} for scaling using data moments, \code{1MCD} or \code{NMCD} for scaling using robust data moments (Minimum Covariance Determinant (MCD) ). } \item{kernel}{ \code{"EDKernel"} for the kernel of type 1/(1+kernel.bandwidth*EuclidianDistance2(x, y)), \code{"GKernel"} [default and recommended] for the simple Gaussian kernel, \code{"EKernel"} exponential kernel: exp(-kernel.bandwidth*EuclidianDistance(x, y)), %\code{"TriangleKernel"}, \code{"VarGKernel"} variable Gaussian kernel, where \code{kernel.bandwidth} is proportional to the \code{depth.zonoid} of a point. } \item{kernel.bandwidth}{ the single bandwidth parameter of the kernel. If \code{NULL} - the Scott's rule of thumb is used. } \item{mah.parMcd}{ is the value of the argument \code{alpha} for the function \code{\link{covMcd}}; is used when \code{pretransform = "*MCD"}. } } \details{ The potential is the kernel-estimated density multiplied by the prior probability of a class. The kernel bandwidth matrix is decomposed into two parts, one of which describes the form of the data, and the other the width of the kernel. Then the first part is used to transform the data using the moments, while the second is employed as a parameter of the kernel and tuned to achieve the best separation. For details see Pokotylo and Mosler (2015). } \value{ Numerical vector of potentials, one for each row in \code{x}; or one potential value if \code{x} is a numerical vector. } \references{ Aizerman, M.A., Braverman, E.M., and Rozonoer, L.I. (1970). \emph{The Method of Potential Functions in the Theory of Machine Learning}. Nauka (Moscow). Pokotylo, O. and Mosler, K. (2015). Classification with the pot-pot plot. \emph{Mimeo}. } \seealso{ \code{\link{depth.halfspace}} for calculation of the Tukey depth. \code{\link{depth.Mahalanobis}} for calculation of Mahalanobis depth. \code{\link{depth.projection}} for calculation of projection depth. \code{\link{depth.simplicial}} for calculation of simplicial depth. \code{\link{depth.simplicialVolume}} for calculation of simplicial volume depth. \code{\link{depth.spatial}} for calculation of spatial depth. \code{\link{depth.zonoid}} for calculation of zonoid depth. } \examples{ # 3-dimensional normal distribution data <- mvrnorm(200, rep(0, 3), matrix(c(1, 0, 0, 0, 2, 0, 0, 0, 1), nrow = 3)) x <- mvrnorm(10, rep(1, 3), matrix(c(1, 0, 0, 0, 1, 0, 0, 0, 1), nrow = 3)) # potential with rule of thumb bandwidth pot <- depth.potential(x, data) cat("Potentials: ", pot, "\n") # potential with bandwidth = 0.1 pot <- depth.potential(x, data, kernel.bandwidth = 0.1) cat("Potentials: ", pot, "\n") # potential with robust MCD scaling pot <- depth.potential(x, data, kernel.bandwidth = 0.1, pretransform = "NMCD", mah.parMcd = 0.6) cat("Potentials: ", pot, "\n") } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } ddalpha/man/infimalRank.Rd0000644000176200001440000000327613162365544015165 0ustar liggesusers\name{infimalRank} \alias{infimalRank} \title{Adjusted Ranking of Functional Data Based on the Infimal Depth} \usage{ infimalRank(ID, IA, ties.method = "max") } \arguments{ \item{ID}{The vector of infimal depths of the curves of length \code{n}.} \item{IA}{The vector of the infimal areas corresponding to the infimal depths from \code{ID} of length \code{n}.} \item{ties.method}{Parameter for breaking ties in infimal area index. By default \code{max}, see \code{rank}.} } \value{ A vector of length \code{n}. Low depth values mean high ranks, i.e. potential outlyingness. If some of the infimal depths are identical, the ranking of these functions is made according to the values of the infimal area. There, higher infimal area index means higher rank, i.e. non-centrality. } \description{ Returns a vector of adjusted depth-based ranks for infimal depth for functional data. } \details{ Infimal depths for functional data tend to give to many functional observations the same value of depth. Using this function, the data whose depth is the same is ranked according to the infimal area indicator. This indicator is provided in functions \code{depthf.fd1} along the value of the infimal depth. } \examples{ datafA = dataf.population()$dataf[1:20] datafB = dataf.population()$dataf[21:50] D = depthf.fd1(datafA,datafB) infimalRank(D$Half_ID,D$Half_IA) ID = c(0,1,0,0,0,1,1) IA = c(2,3,1,0,2,4,1) infimalRank(ID,IA) } \references{ Nagy, S., Gijbels, I. and Hlubinka, D. (2017). Depth-based recognition of shape outlying functions. \emph{Journal of Computational and Graphical Statistics}. To appear. } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{depth} \keyword{functional} \keyword{rank} ddalpha/man/ddalphaf.test.Rd0000644000176200001440000000426713160003425015435 0ustar liggesusers\name{ddalphaf.test} \alias{ddalphaf.test} \title{ Test Functional DD-Classifier } \description{ Trains functional DD-classifier on the learning sequence of the data and tests it on the testing sequence. } \usage{ ddalphaf.test(learn, learnlabels, test, testlabels, disc.type = c("LS", "comp"), ...) } \arguments{ \item{learn}{ list containing lists (functions) of two vectors of equal length, named "args" and "vals": arguments sorted in ascending order and corresponding them values respectively } \item{learnlabels}{ list of output labels of the functional observations } \item{test}{ the testing sequence. Has the same format as \code{learn} } \item{disc.type}{ type of the used discretization scheme. "LS" for \code{\link{ddalphaf.train}}, "comp" for for \code{\link{compclassf.train}} } \item{testlabels}{ list of output labels of the functinal observations } \item{\dots}{ additional parameters passed to \code{\link{ddalphaf.train}} } } \value{ \item{error}{ the part of incorrectly classified data } \item{correct}{ the number of correctly classified objects } \item{incorrect}{ the number of incorrectly classified objects } \item{total}{ the number of classified objects } \item{ignored}{ the number of ignored objects (outside the convex hull of the learning data) } \item{n}{ the number of objects in the testing sequence } \item{time}{ training time } } \seealso{ \code{\link{ddalphaf.train}} to train the functional DD\eqn{\alpha}-classifier, \code{\link{ddalphaf.classify}} for classification using functonal DD\eqn{\alpha}-classifier, \code{\link{ddalphaf.getErrorRateCV}} and \code{\link{ddalphaf.getErrorRatePart}} to get error rate of the functional DD-classifier on particular data. } \examples{ # load the fdata df = dataf.growth() samp = c(35:70) ddalphaf.test(learn = df$dataf[-samp], learnlabels = df$labels[-samp], test = df$dataf[samp], testlabels = df$labels[samp], adc.args = list(instance = "avr", numFcn = 2, numDer = 2)) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ benchmark } ddalpha/man/depth.halfspace.Rd0000644000176200001440000001227513160003425015743 0ustar liggesusers\name{depth.halfspace} \alias{depth.halfspace} \title{ Calculate Halfspace Depth } \description{ Calculates the exact or random Tukey (=halfspace, location) depth (Tukey, 1975) of points w.r.t. a multivariate data set. } \usage{ depth.halfspace(x, data, exact, method, num.directions = 1000, seed = 0) } \arguments{ \item{x}{ Matrix of objects (numerical vector as one object) whose depth is to be calculated; each row contains a \eqn{d}-variate point. Should have the same dimension as \code{data}. } \item{data}{ Matrix of data where each row contains a \eqn{d}-variate point, w.r.t. which the depth is to be calculated. } \item{exact}{ The type of the used method. The default is \code{exact=F}, which leads to approximate computation of the Tukey depth. For \code{exact=F}, \code{method="Sunif.1D"} is used by default. If \code{exact=T}, the Tukey depth is computed exactly, with \code{method="recursive"} by default.} \item{method}{ For \code{exact=F}, if \code{method="Sunif.1D"} (by default), the Tukey depth is computed approximately by being minimized over univariate projections (see Details below). For \code{exact=T}, the Tukey depth is calculated as the minimum over all combinations of \eqn{k} points from \code{data} (see Details below). In this case parameter \code{method} specifies \eqn{k}, with possible values \eqn{1} for \code{method="recursive"} (by default), \eqn{d-2} for \code{method="plane"}, \eqn{d-1} for \code{method="line"}. The name of the method may be given as well as just parameter \code{exact}, in which case the default method will be used. } \item{num.directions}{ Number of random directions to be generated (for \code{method="Sunif.1D"}). The algorithmic complexity is linear in the number of observations in \code{data}, given the number of directions. } \item{seed}{ The random seed. The default value \code{seed=0} makes no changes (for \code{method="Sunif.1D"}). } } \details{ For \code{exact=F}, if \code{method="Sunif.1D"}, the Tukey depth is computed approximately using the random Tukey depth method proposed by Cuesta-Albertos and Nieto-Reyes (2008). Here the depth is determined as the minimum univariate Tukey depth of the - on lines in several directions - projected data. The directions are distributed uniformly on the \eqn{(d-1)}-sphere; the same direction set is used for all points. For \code{exact=T}, the Tukey depth is computed exactly as the minimum of the sum of the depths in two orthogonal complementary affine subspaces, which dimensions add to \eqn{d}: one of the subspaces (combinatorial) is the \eqn{k}-dimensional hyperplane through (a point from) \code{x} and \eqn{k} points from \code{data}, another one is its orthogonal complement (see Dyckerhoff and Mozharovskyi, 2016 for the detailed description of the algorithmic framework). The algorithm then minimizes the depth over all combinations of \eqn{k} points, in which the depth in the orthogonal complements is computed using an exact algorithm. In this case, parameter \code{method} specifies the dimensionality \eqn{k} of the combinatorial space. The implemented (reasonable) algorithms (and corresponding names) are: \eqn{k=1} (or \code{method="recursive"}), \eqn{k=d-2} (or \code{method="plane"}), and \eqn{k=d-1} (or \code{method="line"}). } \value{ Numerical vector of depths, one for each row in \code{x}; or one depth value if \code{x} is a numerical vector. } \references{ Cuesta-Albertos, J.A. and Nieto-Reyes, A. (2008). The random Tukey depth. \emph{Computational Statistics and Data Analysis} \bold{52} 4979--4988. Dyckerhoff, R. and Mozharovskyi, P. (2016). Exact computation of the halfspace depth. \emph{Computational Statistics and Data Analysis} \bold{98} 19--30. Rousseeuw, P.J. and Ruts, I. (1996). Algorithm AS 307: Bivariate location depth. \emph{Journal of the Royal Statistical Society. Seriec C (Applied Statistics)} \bold{45} 516--526. Tukey, J.W. (1974). Mathematics and the picturing of data. In: \emph{Proceeding of the International Congress of Mathematicians}, Vancouver, 523--531. } \seealso{ \code{\link{depth.Mahalanobis}} for calculation of Mahalanobis depth. \code{\link{depth.projection}} for calculation of projection depth. \code{\link{depth.simplicial}} for calculation of simplicial depth. \code{\link{depth.simplicialVolume}} for calculation of simplicial volume depth. \code{\link{depth.spatial}} for calculation of spatial depth. \code{\link{depth.zonoid}} for calculation of zonoid depth. \code{\link{depth.potential}} for calculation of data potential. } \examples{ # 3-dimensional normal distribution data <- mvrnorm(200, rep(0, 3), matrix(c(1, 0, 0, 0, 2, 0, 0, 0, 1), nrow = 3)) x <- mvrnorm(10, rep(1, 3), matrix(c(1, 0, 0, 0, 1, 0, 0, 0, 1), nrow = 3)) # default - random Tukey depth depths <- depth.halfspace(x, data) cat("Depths: ", depths, "\n") # default exact method - "recursive" depths <- depth.halfspace(x, data, exact = TRUE) cat("Depths: ", depths, "\n") # method "line" depths <- depth.halfspace(x, data, method = "line") cat("Depths: ", depths, "\n") } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } ddalpha/man/depth.contours.Rd0000644000176200001440000000331513160003425015664 0ustar liggesusers\name{depth.contours} \alias{depth.contours} \title{ Depth Contours } \description{ Builds the data depth contours for 2-dimensional data. } \usage{ depth.contours(data, depth, main = "", xlab="", ylab = "", drawplot = T, frequency=100, levels = 10, col = "red", ...) } \arguments{ \item{data}{ 2-dimensional numeric data frame or matrix } \item{depth}{ the name of the depth function. The list of the supported depths and described in the topic \code{\link{depth.}}. } \item{main}{ an overall title for the plot: see \code{\link{title}} } \item{xlab, ylab}{ labels of the axes } \item{drawplot}{ if set to false, the contours are built on the existing plot. } \item{frequency}{ number of points on each direction, x and y. Impacts the smoothness of the contours. } \item{levels}{ numeric vector of levels at which to draw contour lines. If the vector contains only ONE element, the levels are generated automatically as \code{seq(0, max(depth), length.out = levels)}. } \item{col}{ color, used to draw points and contours } \item{\dots}{ additional parameters passed to the depth functions and to \code{\link{plot}} } } \seealso{ \code{\link{depth.}}, \code{\link{depth.contours.ddalpha}}, \code{\link{depth.graph}}. } \examples{ \dontrun{ par(mfrow = c(2,2)) data(hemophilia) depth.contours(hemophilia[,1:2], depth = "none", main = "data") for (depth in c("zonoid", "Mahalanobis", "projection", "spatial")){ depth.contours(hemophilia[,1:2], depth = depth, main = depth) } for (depth in c("halfspace", "simplicial", "simplicialVolume")){ depth.contours(hemophilia[,1:2], depth = depth, main = depth, exact = T) } } } \keyword{ visualization } ddalpha/man/depthf.HR.Rd0000644000176200001440000000357213162365543014512 0ustar liggesusers\name{depthf.HR} \alias{depthf.HR} \title{Half-Region Depth for Functional Data} \usage{ depthf.HR(datafA, datafB, range = NULL, d = 101) } \arguments{ \item{datafA}{Functions whose depth is computed, represented by a \code{dataf} object of their arguments and functional values. \code{m} stands for the number of functions.} \item{datafB}{Random sample functions with respect to which the depth of \code{datafA} is computed. \code{datafB} is represented by a \code{dataf} object of their arguments and functional values. \code{n} is the sample size. The grid of observation points for the functions \code{datafA} and \code{datafB} may not be the same.} \item{range}{The common range of the domain where the functions \code{datafA} and \code{datafB} are observed. Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in \code{datafA} and \code{datafB}.} \item{d}{Grid size to which all the functional data are transformed. For depth computation, all functional observations are first transformed into vectors of their functional values of length \code{d} corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these points are reconstructed using linear interpolation, and extrapolation.} } \value{ A vector of length \code{m} of the half-region depth values. } \description{ The half-region depth for functional real-valued data. } \details{ The function returns the vector of the sample half-region depth values. } \examples{ datafA = dataf.population()$dataf[1:20] datafB = dataf.population()$dataf[21:50] depthf.HR(datafA,datafB) } \references{ Lopez-Pintado, S. and Romo, J. (2011). A half-region depth for functional data. \emph{Computational Statistics & Data Analysis} \bold{55} (4), 1679--1695. } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{depth} \keyword{functional} ddalpha/man/depth.projection.Rd0000644000176200001440000001014413160003425016162 0ustar liggesusers\name{depth.projection} \alias{depth.projection} \title{ Calculate Projection Depth } \description{ Calculates the projection depth of points w.r.t. a multivariate data set. } \usage{ depth.projection(x, data, method = "random", num.directions = 1000, seed = 0) } \arguments{ \item{x}{ Matrix of objects (numerical vector as one object) whose depth is to be calculated; each row contains a \eqn{d}-variate point. Should have the same dimension as \code{data}. } \item{data}{ Matrix of data where each row contains a \eqn{d}-variate point, w.r.t. which the depth is to be calculated. } \item{method}{ to be used in calculations. \code{"random"} Here the depth is determined as the minimum univariate depth of the data projected on lines in several directions. The directions are distributed uniformly on the \eqn{(d-1)}-sphere; the same direction set is used for all points. \code{"linearize"} The Nelder-Mead method for function minimization, taken from Olsson, Journal of Quality Technology, 1974, 6, 56. } \item{num.directions}{ Number of random directions to be generated for \code{method = "random"}. With the growth of n the complexity grows linearly for the same number of directions. } \item{seed}{ the random seed. The default value \code{seed=0} makes no changes. } } \details{ Calculates projection depth. Projection depth, similar to Mahalanobis depth, is based on a measure of outlyingness, used by Stahel (1981) and Donoho (1982), and has been first formulated by Liu (1992). The worst case outlyingness is obtained by maximizing an outlyingness measure over all univariate projections. In practice most often \emph{median}, and \emph{median absolute deviation from the median }(MAD), are used as they are robust measures. } \value{ Numerical vector of depths, one for each row in \code{x}; or one depth value if \code{x} is a numerical vector. } \author{ R-codes for the "linearize" method were written by Subhajit Dutta. } \references{ Donoho, D.L. (1982). \emph{Breakdown properties of multivariate location estimators}. Ph.D. qualifying paper. Department of Statistics, Harvard University. Liu, R.Y. (1992). Data depth and multivariate rank tests. In: Dodge, Y. (ed.), L1-Statistics and Related Methods, North-Holland (Amsterdam), 279--294. Liu, X. and Zuo, Y. (2014). Computing projection depth and its associated estimators. \emph{Statistics and Computing} \bold{24} 51--63. Stahel, W.A. (1981). \emph{Robust estimation: infinitesimal optimality and covariance matrix estimators}. Ph.D. thesis (in German). Eidgenossische Technische Hochschule Zurich. Zuo, Y.J. and Lai, S.Y. (2011). Exact computation of bivariate projection depth and the Stahel-Donoho estimator. \emph{Computational Statistics and Data Analysis} \bold{55} 1173--1179. } \seealso{ \code{\link{depth.halfspace}} for calculation of the Tukey depth. \code{\link{depth.Mahalanobis}} for calculation of Mahalanobis depth. \code{\link{depth.simplicial}} for calculation of simplicial depth. \code{\link{depth.simplicialVolume}} for calculation of simplicial volume depth. \code{\link{depth.spatial}} for calculation of spatial depth. \code{\link{depth.zonoid}} for calculation of zonoid depth. \code{\link{depth.potential}} for calculation of data potential. } \examples{ # 5-dimensional normal distribution data <- mvrnorm(100, rep(0, 5), matrix(c(1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1), nrow = 5)) x <- mvrnorm(10, rep(1, 5), matrix(c(1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), nrow = 5)) depths <- depth.projection(x, data, method = "random", num.directions = 1000) cat("Depths random: ", depths, "\n") depths <- depth.projection(x, data, method = "linearize") cat("Depths linearize: ", depths, "\n") } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } ddalpha/man/depthf.RP2.Rd0000644000176200001440000000731613162365544014605 0ustar liggesusers\name{depthf.RP2} \alias{depthf.RP2} \title{Bivariate Random Projection Depths for Functional Data} \usage{ depthf.RP2(datafA, datafB, range = NULL, d = 101, nproj = 51) } \arguments{ \item{datafA}{Bivariate functions whose depth is computed, represented by a multivariate \code{dataf} object of their arguments (vector), and a matrix with two columns of the corresponding bivariate functional values. \code{m} stands for the number of functions.} \item{datafB}{Bivariate random sample functions with respect to which the depth of \code{datafA} is computed. \code{datafB} is represented by a multivariate \code{dataf} object of their arguments (vector), and a matrix with two columns of the corresponding bivariate functional values. \code{n} is the sample size. The grid of observation points for the functions \code{datafA} and \code{datafB} may not be the same.} \item{range}{The common range of the domain where the functions \code{datafA} and \code{datafB} are observed. Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in \code{datafA} and \code{datafB}.} \item{d}{Grid size to which all the functional data are transformed. For depth computation, all functional observations are first transformed into vectors of their functional values of length \code{d} corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these points are reconstructed using linear interpolation, and extrapolation.} \item{nproj}{Number of projections taken in the computation of the double random projection depth. By default taken to be \code{51}.} } \value{ Five vectors of length \code{m} are returned: \itemize{ \item \code{Simpl_FD} the double random projection depth RP2 based on the bivariate simplicial depth, \item \code{Half_FD} the double random projection depth RP2 based on the bivariate halfspace depth, \item \code{hM_FD} the double random projection depth RP2 based on the bivariate h-mode depth, \item \code{Simpl_DD} the double random projection depth RPD based on the univariate simplicial depth, \item \code{Half_DD} the random projection depth RPD based on the univariate halfspace depth, } } \description{ Double random projection depths of functional bivariate data (that is, data of the form \eqn{X:[a,b] \to R^2}, or \eqn{X:[a,b] \to R} and the derivative of \eqn{X}). } \details{ The function returns the vectors of sample double random projection depth values. The double random projection depths are described in Cuevas et al. (2007). They are of two types: RP2 type, and RPD type. Both types of depths are based on bivariate projections of the bivariate functional data. These projections are taken randomly as a sample of standard normal \code{d}-dimensional random variables, where \code{d} stands for the dimensionality of the internally represented discretized functional data. For RP2 type depths, the average bivariate depth of the projected quantities is assessed. For RPD type depths, further univariate projections of these bivariate projected quantities are evaluated, and based on these final univariate quantities, the average univariate depth is computed. } \examples{ datafA = dataf.population()$dataf[1:20] datafB = dataf.population()$dataf[21:50] dataf2A = derivatives.est(datafA,deriv=c(0,1)) dataf2B = derivatives.est(datafB,deriv=c(0,1)) depthf.RP2(dataf2A,dataf2B) } \references{ Cuevas, A., Febrero, M. and Fraiman, R. (2007). Robust estimation and classification for functional data via projection-based depth notions. \emph{Computational Statistics} \bold{22} (3), 481--496. } \seealso{ \code{\link{depthf.RP1}} } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{depth} \keyword{derivatives} \keyword{functional} ddalpha/man/depth.simplicial.Rd0000644000176200001440000000606113160003425016137 0ustar liggesusers\name{depth.simplicial} \alias{depth.simplicial} \title{ Calculate Simplicial Depth } \description{ Calculates the simplicial depth of points w.r.t. a multivariate data set. } \usage{ depth.simplicial(x, data, exact = F, k = 0.05, seed = 0) } \arguments{ \item{x}{ Matrix of objects (numerical vector as one object) whose depth is to be calculated; each row contains a \eqn{d}-variate point. Should have the same dimension as \code{data}. } \item{data}{ Matrix of data where each row contains a \eqn{d}-variate point, w.r.t. which the depth is to be calculated. } \item{exact}{ \code{exact=F} (by default) implies the approximative algorithm, considering \code{k} simplices, \code{exact=T} implies the exact algorithm. } \item{k}{ Number (\eqn{k>1}) or portion (if \eqn{01}, then the algorithmic complexity is polynomial in \eqn{d} but is independent of the number of observations in \code{data}, given \eqn{k}. If \eqn{01}) or portion (if \eqn{01}, then the algorithmic complexity is polynomial in \eqn{d} but is independent of the number of observations in \code{data}, given \eqn{k}. If \eqn{0= 20 blue (", sum(labels == "large"), ")", sep=""), colors = c("blue", "red")) } } \keyword{datasets} \keyword{functional} ddalpha/man/ddalpha.train.Rd0000644000176200001440000004727413160003425015432 0ustar liggesusers\name{ddalpha.train} \alias{ddalpha.train} \alias{alpha} \alias{polynomial} \alias{knnlm} \alias{maxD} \alias{outsiders} \title{ Train DD-Classifier } \description{ Trains the DD-classifier using a training sample according to given parameters. The DD-classifier is a non-parametric procedure that first transforms the training sample into the depth space calculating the depth of each point w.r.t each class (dimension of this space equals the number of classes in the training sample), and then constructs a separating rule in this depth space. If in the classification phase an object does not belong to the convex hull of at least one class (we mention such an object as an 'outsider'), it is mapped into the origin of the depth space and hence cannot be classified in the depth space. For these objects, after 'outsiderness' has been assured, an outsider treatment, i.e. a classification procedure functioning outside convex hulls of the classes is applied; it has to be trained too. The current realization of the DD-classifier allows for several alternative outsider treatments; they involve different traditional classification methods, see 'Details' and 'Arguments' for parameters needed. The function allows for classification with \eqn{q\ge 2} classes, see \code{aggregation.method} in 'Arguments'. } \usage{ ddalpha.train(formula, data, subset, depth = "halfspace", separator = "alpha", outsider.methods = "LDA", outsider.settings = NULL, aggregation.method = "majority", pretransform = NULL, mah.parMcd = 0.75, use.convex = FALSE, seed = 0, ...) } \arguments{ \item{formula}{ an object of class ``formula'' (or one that can be coerced to that class): a symbolic description of the model. If not found in \code{data}, the variables of the model are taken from environment. } \item{data}{ Matrix or data.frame containing training sample where each of \eqn{n} rows is one object of the training sample where first \eqn{d} entries are inputs and the last entry is output (class label). A pre-calculated DD-plot may be used as \code{data} with \code{depth="ddplot"}. } \item{subset}{ an optional vector specifying a subset of observations to be used in training the classifier. } \item{depth}{ Character string determining which depth notion to use; the default value is \code{"halfspace"}. The list of the supported depths is given in section \emph{\bold{\code{Depths}}}. To use a custom depth, see topic \code{\link{Custom Methods}}. To use an outsider treatment only set \code{depth = NULL}. } \item{separator}{ The method used for separation on the DD-plot; can be \code{"alpha"} (the default), \code{"polynomial"}, \code{"knnlm"} or \code{"maxD"}. See section \emph{\bold{\code{Separators}}} for the description of the separators and additional parameters. To use a custom separator, see topic \code{\link{Custom Methods}}. } \item{outsider.methods}{ Vector of character strings each being a name of a basic outsider method for eventual classification; possible names are: \code{"LDA"} (the default), \code{"LDA"}, \code{"kNN"}, \code{"kNNAff"}, \code{"depth.Mahalanobis"}, \code{"RandProp"}, \code{"RandEqual"} and \code{"Ignore"}. Each method can be specified only once, replications are ignored. By specifying treatments in such a way only a basic treatment method can be chosen (by the name), and the default settings for each of the methods are applied, see 'Details'. } \item{outsider.settings}{ List containing outsider treatments each described by a list of parameters including a name, see 'Details' and 'Examples'. Each method can be used multiply with (not necessarily) different parameters, just the name should be unique, entries with the repeating names are ignored. } \item{aggregation.method}{ Character string determining which method to apply to aggregate binary classification results during multiclass classification; can be \code{"majority"} (the default) or \code{"sequent"}. If \code{"majority"}, \eqn{q(q-1)/2} (with \eqn{q} being the number of classes in the training sample) binary classifiers are trained, the classification results are aggregated using the majority voting, where classes with larger proportions in the training sample (eventually with the earlier entries in the \code{data}) are preferred when tied. If \code{"sequent"}, \eqn{q} binary 'one against all'-classifiers are trained and ties during the classification are resolved as before. } \item{pretransform}{ indicates if the data has to be scaled before the learning procedure. If the used depth method is affine-invariant and pretransform doesn't influence the result, the data won't be transformed (the parameter is ignored). \describe{ \item{NULL}{ applies no transformation to the data } \item{"1Mom", "1MCD"}{ the data is transformed with the common covariance matrix of the whole data } \item{"NMom", "NMCD"}{ the data is transformed w.r.t. each class using its covariance martix. The depths w.r.t. each class are calculated using the transformed data. } for the values \code{"1MCD", "NMCD"} \code{\link{covMcd}} is used to calculate the covariance matrix, and the parameter \code{mah.parMcd} is used. } } \item{mah.parMcd}{ is the value of the argument \code{alpha} for the function \code{\link{covMcd}}; is used if \code{depth = "Mahalanobis"} when \code{mah.estimate = "MCD"} and in pretransforming the data if \code{pretransform in ("1MCD", "NMCD")}. } \item{use.convex}{ Logical variable indicating whether outsiders should be determined exactly, i.e. as the points not contained in any of the convex hulls of the classes from the training sample (\code{TRUE}), or those having zero depth w.r.t. each class from the training sample (\code{FALSE}). For \code{depth =} \code{"zonoid"} both values give the same result. } \item{seed}{ the random seed. The default value \code{seed=0} makes no changes. } \item{...}{ The parameters for the depth calculating and separation methods. } } \details{ \subsection{Depths}{ For \code{depth="ddplot"} the pre-calculated DD-plot shall be passed as \code{data}. To use a custom depth, see topic \code{\link{Custom Methods}}. To use an outsider treatment only set \code{depth = NULL}. The following depths are supported: \code{\link{depth.halfspace}} for calculation of the Tukey depth. \code{\link{depth.Mahalanobis}} for calculation of Mahalanobis depth. \code{\link{depth.projection}} for calculation of projection depth. \code{\link{depth.simplicial}} for calculation of simplicial depth. \code{\link{depth.simplicialVolume}} for calculation of simplicial volume depth. \code{\link{depth.spatial}} for calculation of spatial depth. \code{\link{depth.zonoid}} for calculation of zonoid depth. The additional parameters are described in the corresponding topics. } \subsection{Separators}{ The separators classify data on the 2-dimensional space of a DD-plot built using the depths. To use a custom separator, see topic \code{\link{Custom Methods}}. \subsection{alpha}{ Trains the DD\eqn{\alpha}-classifier (Lange, Mosler and Mozharovskyi, 2014; Mozharovskyi, Mosler and Lange, 2015). The DD\eqn{\alpha}-classifier constructs a linear separating rule in the polynomial extension of the depth space with the \eqn{\alpha}-procedure (Vasil'ev, 2003); maximum degree of the polynomial products is determined via cross-validation (in the depth space). The additional parameters: \describe{ \item{max.degree}{ Maximum of the range of degrees of the polynomial depth space extension over which the \eqn{\alpha}-procedure is to be cross-validated; can be 1, 2 or 3 (default). } \item{num.chunks}{ Number of chunks to split data into when cross-validating the \eqn{\alpha}-procedure; should be \eqn{>0}, and smaller than the total number of points in the two smallest classes when \code{aggregation.method =} \code{"majority"} and smaller than the total number of points in the training sample when \code{aggregation.method =} \code{"sequent"}. The default value is 10. } } } \subsection{polynomial}{ Trains the polynomial DD-classifier (Li, Cuesta-Albertos and Liu, 2012). The DD-classifier constructs a polynomial separating rule in the depth space; the degree of the polynomial is determined via cross-validation (in the depth space). The additional parameters: \describe{ \item{max.degree}{ Maximum of the range of degrees of the polynomial over which the separator is to be cross-validated; can be in [1:10], the default value is 3. } \item{num.chunks}{ Number of chunks to split data into when cross-validating the separator; should be \eqn{>0}, and smaller than the total number of points in the two smallest classes when \code{aggregation.method =} \code{"majority"} and smaller than the total number of points in the training sample when \code{aggregation.method =} \code{"sequent"}. The default value is 10. } } } \subsection{knnlm}{ Trains the \code{k}-nearest neighbours classifier in the depth space. The additional parameters: \describe{ \item{knnrange}{ The maximal number of neighbours for kNN separation. The value is bounded by \eqn{2} and \eqn{n/2}. \code{NULL} for the default value \eqn{10*(n^{1/q})+1}, where \eqn{n} is the number of objects, \eqn{q} is the number of classes. \code{"MAX"} for the maximum value \eqn{n/2} } } } \subsection{maxD}{ The \code{maximum depth} separator classifies an object to the class that provides it the largest depth value. } } \subsection{Outsider treatment}{ An outsider treatment is a supplementary classifier for data that lie outside the convex hulls of all \eqn{q} training classes. Available methods are: Linear Discriminant Analysis (referred to as "LDA"), see \code{\link{lda}}; \eqn{k}-Nearest-Neighbor Classifier ("kNN"), see \code{\link{knn}}, \code{\link{knn.cv}}; Affine-Invariant kNN ("kNNAff"), an affine-invariant version of the kNN, suited only for binary classification (some aggregation is used with multiple classes) and not accounting for ties (at all), but very fast by that; Maximum Mahalanobis Depth Classifier ("depth.Mahalanobis"), the outsider is referred to a class w.r.t. which it has the highest depth value scaled by (approximated) priors; Proportional Randomization ("RandProp"), the outsider is referred to a class randomly with probability equal to it (approximated) prior; Equal Randomization ("RandEqual"), the outsider is referred to a class randomly, chances for each class are equal; Ignoring ("Ignore"), the outsider is not classified, the string "Ignored" is returned instead. An outsider treatment is specified by a list containing a name and parameters: \code{name} is a character string, name of the outsider treatment to be freely specified; should be unique; is obligatory. \code{method} is a character string, name of the method to use, can be \code{"LDA"}, \code{"kNN"}, \code{"kNNAff"}, \code{"depth.Mahalanobis"}, \code{"RandProp"}, \code{"RandEqual"} and \code{"Ignore"}; is obligatory. \code{priors} is a numerical vector specifying prior probabilities of classes; class portions in the training sample are used by the default. \code{priors} is used in methods "LDA", "depth.Mahalanobis" and "RandProp". \code{knn.k} is the number of the nearest neighbors taken into account; can be between \eqn{1} and the number of points in the training sample. Set to \eqn{-1} (the default) to be determined by the leave-one-out cross-validation. \code{knn.k} is used in method "kNN". \code{knn.range} is the upper bound on the range over which the leave-one-out cross-validation is performed (the lower bound is \eqn{1}); can be between \eqn{2} and the number of points in the training sample \eqn{-1}. Set to \eqn{-1} (the default) to be calculated automatically accounting for number of points and dimension. \code{knn.range} is used in method "kNN". \code{knnAff.methodAggregation} is a character string specifying the aggregation technique for method "kNNAff"; works in the same way as the function argument \code{aggregation.method}. \code{knnAff.methodAggregation} is used in method "kNNAff". \code{knnAff.k} is the number of the nearest neighbors taken into account; should be at least \eqn{1} and up to the number of points in the training sample when \code{knnAff.methodAggregation =} \code{"sequent"}, and up to the total number of points in the training sample when \code{knnAff.methodAggregation =} \code{"majority"}. Set to \eqn{-1} (the default) to be determined by the leave-one-out cross-validation. \code{knnAff.k} is used in method "kNNAff". \code{knnAff.range} is the upper bound on the range over which the leave-one-out cross-validation is performed (the lower bound is \eqn{1}); should be \eqn{>1} and smaller than the total number of points in the two smallest classes when \code{knnAff.methodAggregation =} \code{"majority"}, and \eqn{>1} and smaller than the total number of points in the training sample when \code{knnAff.methodAggregation =} \code{"sequent"}. Set to \eqn{-1} to be calculated automatically accounting for number of points and dimension. \code{knnAff.range} is used in method "kNNAff". \code{mah.estimate} is a character string specifying which estimates to use when calculating the Mahalanobis depth; can be \code{"moment"} or \code{"MCD"}, determining whether traditional moment or Minimum Covariance Determinant (MCD) (see \code{\link{covMcd}}) estimates for mean and covariance are used. \code{mah.estimate} is used in method "depth.Mahalanobis". \code{mcd.alpha} is the value of the argument \code{alpha} for the function \code{\link{covMcd}}; is used in method "depth.Mahalanobis" when \code{mah.estimate =} \code{"MCD"}. } } \value{ Trained DD\eqn{\alpha}-classifier containing following - rather informative - fields: \item{num.points}{Total number of points in the training sample.} \item{dimension}{Dimension of the original space.} \item{depth}{Character string determining which depth notion to use.} \item{methodAggregation}{Character string determining which method to apply to aggregate binary classification results.} \item{num.chunks}{Number of chunks data has been split into when cross-validating the \eqn{\alpha}-procedure.} \item{num.directions}{Number of directions used for approximating the Tukey depth (when it is used).} \item{use.convex}{Logical variable indicating whether outsiders should be determined exactly when classifying.} \item{max.degree}{Maximum of the range of degrees of the polynomial depth space extension over which the \eqn{\alpha}-procedure has been cross-validated.} \item{patterns}{Classes of the training sample.} \item{num.classifiers}{Number of binary classifiers trained.} \item{outsider.methods}{Treatments to be used to classify outsiders.} } \references{ Dyckerhoff, R., Koshevoy, G., and Mosler, K. (1996). Zonoid data depth: theory and computation. In: Prat A. (ed), \emph{COMPSTAT 1996. Proceedings in computational statistics}, Physica-Verlag (Heidelberg), 235--240. Lange, T., Mosler, K., and Mozharovskyi, P. (2014). Fast nonparametric classification based on data depth. \emph{Statistical Papers} \bold{55} 49--69. Li, J., Cuesta-Albertos, J.A., and Liu, R.Y. (2012). DD-classifier: Nonparametric classification procedure based on DD-plot. \emph{Journal of the American Statistical Association} \bold{107} 737--753. Mozharovskyi, P. (2015). \emph{Contributions to Depth-based Classification and Computation of the Tukey Depth}. Verlag Dr. Kovac (Hamburg). Mozharovskyi, P., Mosler, K., and Lange, T. (2015). Classifying real-world data with the DD\eqn{\alpha}-procedure. \emph{Advances in Data Analysis and Classification} \bold{9} 287--314. Vasil'ev, V.I. (2003). The reduction principle in problems of revealing regularities I. \emph{Cybernetics and Systems Analysis} \bold{39} 686--694. } \seealso{ \code{\link{ddalpha.classify}} for classification using DD-classifier, \code{\link{depth.}} for calculation of depths, \code{\link{depth.space.}} for calculation of depth spaces, \code{\link{is.in.convex}} to check whether a point is not an outsider. } \examples{ # Generate a bivariate normal location-shift classification task # containing 200 training objects and 200 to test with class1 <- mvrnorm(200, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(200, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) trainIndices <- c(1:100) testIndices <- c(101:200) propertyVars <- c(1:2) classVar <- 3 trainData <- rbind(cbind(class1[trainIndices,], rep(1, 100)), cbind(class2[trainIndices,], rep(2, 100))) testData <- rbind(cbind(class1[testIndices,], rep(1, 100)), cbind(class2[testIndices,], rep(2, 100))) data <- list(train = trainData, test = testData) # Train 1st DDalpha-classifier (default settings) # and get the classification error rate ddalpha1 <- ddalpha.train(data$train) classes1 <- ddalpha.classify(ddalpha1, data$test[,propertyVars]) cat("1. Classification error rate (defaults): ", sum(unlist(classes1) != data$test[,classVar])/200, ".\n", sep = "") # Train 2nd DDalpha-classifier (zonoid depth, maximum Mahalanobis # depth classifier with defaults as outsider treatment) # and get the classification error rate ddalpha2 <- ddalpha.train(data$train, depth = "zonoid", outsider.methods = "depth.Mahalanobis") classes2 <- ddalpha.classify(ddalpha2, data$test[,propertyVars], outsider.method = "depth.Mahalanobis") cat("2. Classification error rate (depth.Mahalanobis): ", sum(unlist(classes2) != data$test[,classVar])/200, ".\n", sep = "") # Train 3rd DDalpha-classifier (100 random directions for the Tukey depth, # adjusted maximum Mahalanobis depth classifier # and equal randomization as outsider treatments) # and get the classification error rates treatments <- list(list(name = "mahd1", method = "depth.Mahalanobis", mah.estimate = "MCD", mcd.alpha = 0.75, priors = c(1, 1)/2), list(name = "rand1", method = "RandEqual")) ddalpha3 <- ddalpha.train(data$train, outsider.settings = treatments, num.direction = 100) classes31 <- ddalpha.classify(ddalpha3, data$test[,propertyVars], outsider.method = "mahd1") classes32 <- ddalpha.classify(ddalpha3, data$test[,propertyVars], outsider.method = "rand1") cat("3. Classification error rate (by treatments):\n") cat(" Error (mahd1): ", sum(unlist(classes31) != data$test[,classVar])/200, ".\n", sep = "") cat(" Error (rand1): ", sum(unlist(classes32) != data$test[,classVar])/200, ".\n", sep = "") # Train using some weird formula ddalpha = ddalpha.train( I(mpg >= 19.2) ~ log(disp) + I(disp^2) + disp + I(disp * drat), data = mtcars, subset = (carb!=1), depth = "Mahalanobis", separator = "alpha") print(ddalpha) # make sure that the resulting table is what you wanted CC = ddalpha.classify(ddalpha, mtcars) sum((mtcars$mpg>=19.2)!= unlist(CC))/nrow(mtcars) # error rate #Use the pre-calculated DD-plot data = cbind(rbind(mvrnorm(n = 50, mu = c(0,0), Sigma = diag(2)), mvrnorm(n = 50, mu = c(5,10), Sigma = diag(2)), mvrnorm(n = 50, mu = c(10,0), Sigma = diag(2))), rep(c(1,2,3), each = 50)) plot(data[,1:2], col = (data[,3]+1)) ddplot = depth.space.Mahalanobis(data = data[,1:2], cardinalities = c(50,50,50)) ddplot = cbind(ddplot, data[,3]) ddalphaD = ddalpha.train(data = ddplot, depth = "ddplot", separator = "alpha") c = ddalpha.classify(ddalphaD, ddplot[,1:3]) errors = sum(unlist(c) != data[,3])/nrow(data) print(paste("Error rate: ",errors)) ddalpha = ddalpha.train(data = data, depth = "Mahalanobis", separator = "alpha") c = ddalpha.classify(ddalpha, data[,1:2]) errors = sum(unlist(c) != data[,3])/nrow(data) print(paste("Error rate: ",errors)) } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } \keyword{ classif } ddalpha/man/ddalpha-package.Rd0000644000176200001440000001526613162765773015732 0ustar liggesusers\name{ddalpha-package} \alias{ddalpha-package} \alias{ddalpha} \docType{package} \title{ Depth-Based Classification and Calculation of Data Depth } \description{ The package provides many procedures for calculating the depth of points in an empirical distribution for many notions of data depth. Further it provides implementations for depth-based classification, for multivariate and functional data. The package implements the DD\eqn{\alpha}-classifier (Lange, Mosler and Mozharovskyi, 2014), a nonparametric procedure for supervised binary classification with \eqn{q\ge 2} classes. In the training step, the sample is first transformed into a \eqn{q}-dimensional cube of depth vectors, then a linear separation rule in its polynomial extension is constructed with the \eqn{\alpha}-procedure. The classification step involves alternative treatments of 'outsiders'. } \details{ \tabular{ll}{ Package: \tab ddalpha\cr Type: \tab Package\cr Version: \tab 1.3.1\cr Date: \tab 2017-09-27\cr License: \tab GPL-2\cr } Use \code{\link{ddalpha.train}} to train the DD-classifier and \code{\link{ddalpha.classify}} to classify with it. Load sample classification problems using \code{\link{getdata}}. The package contains 50 classification problems built of 33 sets of real data. The list of the implemented multivariate depths is found in topic \code{\link{depth.}}, for functional depths see \code{\link{depthf.}}. The depth representations of the multivariate data are obtained with \code{\link{depth.space.}}. Functions \code{\link{depth.contours}} and \code{\link{depth.contours.ddalpha}} build depth contours, and \code{\link{depth.graph}} builds depth graphs for two-dimensional data. Function \code{\link{draw.ddplot}} draws DD-plot for the existing DD-classifier, or for pre-calculated depth space. The package supports user-defined depths and classifiers, see topic \code{\link{Custom Methods}}. A pre-calculated DD-plot may also be used as \code{data}, see topic \code{\link{ddalpha.train}}. \code{\link{is.in.convex}} shows whether an object is no 'outsider', i.e. can be classified by its depth values. Outsiders are alternatively classified by LDA, kNN and maximum Mahalanobis depth as well as by random assignment. Use \code{\link{compclassf.train}} and \code{\link{ddalphaf.train}} to train the functional DD-classifiers and \code{\link{compclassf.classify}} \code{\link{ddalpha.classify}} to classify with them. Load sample functional classification problems with \code{\link{dataf.*}}. The package contains 4 functional data sets and 2 data set generators. The functional data are visualized with \code{\link{plot.functional}}. } \author{ Oleksii Pokotylo, Pavlo Mozharovskyi, Rainer Dyckerhoff, Stanislav Nagy, } \references{ Pokotylo, O., Mozharovskyi, P., Dyckerhoff, R. (2016). Depth and depth-based classification with R-package ddalpha. \emph{arXiv:1608.04109} Lange, T., Mosler, K., and Mozharovskyi, P. (2014). Fast nonparametric classification based on data depth. \emph{Statistical Papers} \bold{55} 49--69. Lange, T., Mosler, K., and Mozharovskyi, P. (2014). DD\eqn{\alpha}-classification of asymmetric and fat-tailed data. In: Spiliopoulou, M., Schmidt-Thieme, L., Janning, R. (eds), \emph{Data Analysis, Machine Learning and Knowledge Discovery}, Springer (Berlin), 71--78. Mosler, K. and Mozharovskyi, P. (2015). Fast DD-classification of functional data. \emph{Statistical Papers}, in press. Mozharovskyi, P. (2015). \emph{Contributions to Depth-based Classification and Computation of the Tukey Depth}. Verlag Dr. Kovac (Hamburg). Mozharovskyi, P., Mosler, K., and Lange, T. (2015). Classifying real-world data with the DD\eqn{\alpha}-procedure. \emph{Advances in Data Analysis and Classification} \bold{9} 287--314. Nagy, S., Gijbels, I. and Hlubinka, D. (2017). Depth-based recognition of shape outlying functions. \emph{Journal of Computational and Graphical Statistics}. To appear. } \keyword{ package } \keyword{ robust } \keyword{ multivariate } \keyword{ functional } \keyword{ nonparametric } \keyword{ classif } \seealso{ \code{\link{ddalpha.train}}, \code{\link{ddalpha.classify}}, \code{\link{ddalphaf.train}}, \code{\link{ddalphaf.classify}}, \code{\link{compclassf.train}}, \code{\link{compclassf.classify}} \code{\link{depth.}}, \code{\link{depthf.}}, \code{\link{depth.space.}}, \code{\link{is.in.convex}}, \code{\link{getdata}}, \code{\link{dataf.*}}, \code{\link{plot.ddalpha}}, \code{\link{plot.ddalphaf}}, \code{\link{plot.functional}}, \code{\link{depth.graph}}, \code{\link{draw.ddplot}}. } \examples{ # Generate a bivariate normal location-shift classification task # containing 200 training objects and 200 to test with class1 <- mvrnorm(200, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(200, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) trainIndices <- c(1:100) testIndices <- c(101:200) propertyVars <- c(1:2) classVar <- 3 trainData <- rbind(cbind(class1[trainIndices,], rep(1, 100)), cbind(class2[trainIndices,], rep(2, 100))) testData <- rbind(cbind(class1[testIndices,], rep(1, 100)), cbind(class2[testIndices,], rep(2, 100))) data <- list(train = trainData, test = testData) # Train the DDalpha-classifier ddalpha <- ddalpha.train(data$train) # Classify by means of DDalpha-classifier classes <- ddalpha.classify(ddalpha, data$test[,propertyVars]) cat("Classification error rate:", sum(unlist(classes) != data$test[,classVar])/200, "\n") # Calculate zonoid depth of top 10 testing objects w.r.t. 1st class depths.zonoid <- depth.zonoid(data$test[1:10,propertyVars], data$train[trainIndices,propertyVars]) cat("Zonoid depths:", depths.zonoid, "\n") # Calculate the random Tukey depth of top 10 testing objects w.r.t. 1st class depths.halfspace <- depth.halfspace(data$test[1:10,propertyVars], data$train[trainIndices,propertyVars]) cat("Random Tukey depths:", depths.halfspace, "\n") # Calculate depth space with zonoid depth dspace.zonoid <- depth.space.zonoid(data$train[,propertyVars], c(100, 100)) # Calculate depth space with the exact Tukey depth dspace.halfspace <- depth.space.halfspace(data$train[,propertyVars], c(100, 100), exact = TRUE) # Count outsiders numOutsiders = sum(rowSums(is.in.convex(data$test[,propertyVars], data$train[,propertyVars], c(100, 100))) == 0) cat(numOutsiders, "outsiders found in the testing sample.\n") } ddalpha/man/depth.Mahalanobis.Rd0000644000176200001440000000741613160003425016234 0ustar liggesusers\name{depth.Mahalanobis} \alias{depth.Mahalanobis} \title{ Calculate Mahalanobis Depth } \description{ Calculates the Mahalanobis depth of points w.r.t. a multivariate data set. } \usage{ depth.Mahalanobis(x, data, mah.estimate = "moment", mah.parMcd = 0.75) } \arguments{ \item{x}{ Matrix of objects (numerical vector as one object) whose depth is to be calculated; each row contains a \eqn{d}-variate point. Should have the same dimension as \code{data}. } \item{data}{ Matrix of data where each row contains a \eqn{d}-variate point, w.r.t. which the depth is to be calculated. } \item{mah.estimate}{ is a character string specifying which estimates to use when calculating the Mahalanobis depth; can be \code{"moment"} or \code{"MCD"}, determining whether traditional moment or Minimum Covariance Determinant (MCD) (see \code{\link{covMcd}}) estimates for mean and covariance are used. By default \code{"moment"} is used. } \item{mah.parMcd}{ is the value of the argument \code{alpha} for the function \code{\link{covMcd}}; is used when \code{mah.estimate =} \code{"MCD"}. } } \details{ Calculates Mahalanobis depth. Mahalanobis depth is based on an outlyingness measure (Zuo & Serfling, 2000), \emph{viz.} the Mahalanobis distance between the given point and the center of the data (Mahalanobis, 1936). \emph{Moment estimates} may be used i.e. traditional \emph{mean} and \emph{covariance matrix}, the corresponding depth may be sensitive to outliers. A more robust depth is obtained with \emph{minimum volume ellipsoid} (MVE) or \emph{minimum covariance determinant} (MCD) estimators, see Rousseeuw & Leroy (1987) and Lopuhaa & Rousseeuw (1991). } \value{ Numerical vector of depths, one for each row in \code{x}; or one depth value if \code{x} is a numerical vector. } \references{ Mahalanobis, P. (1936). On the generalized distance in statistics. \emph{Proceedings of the National Academy India} \bold{12} 49--55. Liu, R.Y. (1992). Data depth and multivariate rank tests. In: Dodge, Y. (ed.), \emph{L1-Statistics and Related Methods}, North-Holland (Amsterdam), 279--294. Lopuhaa, H.P. and Rousseeuw, P.J. (1991). Breakdown points of affine equivariant estimators of multivariate location and covariance matrices. \emph{The Annals of Statistics} \bold{19} 229--248. Rousseeuw, P.J. and Leroy, A.M. (1987). Robust Regression and Outlier Detection. John Wiley & Sons (New York). Zuo, Y.J. and Serfling, R. (2000). General notions of statistical depth function. \emph{The Annals of Statistics} \bold{28} 461--482. } \seealso{ \code{\link{depth.halfspace}} for calculation of the Tukey depth. \code{\link{depth.projection}} for calculation of projection depth. \code{\link{depth.simplicial}} for calculation of simplicial depth. \code{\link{depth.simplicialVolume}} for calculation of simplicial volume depth. \code{\link{depth.spatial}} for calculation of spatial depth. \code{\link{depth.zonoid}} for calculation of zonoid depth. \code{\link{depth.potential}} for calculation of data potential. } \examples{ # 5-dimensional normal distribution data <- mvrnorm(1000, rep(0, 5), matrix(c(1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1), nrow = 5)) x <- mvrnorm(10, rep(1, 5), matrix(c(1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), nrow = 5)) depths <- depth.Mahalanobis(x, data) cat("Depths moment: ", depths, "\n") depths <- depth.Mahalanobis(x, data, mah.estimate = "MCD", mah.parMcd = 0.75) cat("Depths MCD: ", depths, "\n") } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } ddalpha/man/depth.zonoid.Rd0000644000176200001440000000511713160003425015314 0ustar liggesusers\name{depth.zonoid} \alias{depth.zonoid} \title{ Calculate Zonoid Depth } \description{ Calculates the zonoid depth of points w.r.t. a multivariate data set. } \usage{ depth.zonoid(x, data, seed = 0) } \arguments{ \item{x}{ Matrix of objects (numerical vector as one object) whose depth is to be calculated; each row contains a \eqn{d}-variate point. Should have the same dimension as \code{data}. } \item{data}{ Matrix of data where each row contains a \eqn{d}-variate point, w.r.t. which the depth is to be calculated. } \item{seed}{ the random seed. The default value \code{seed=0} makes no changes. } } \details{ Calculates zonoid depth (Koshevoy and Mosler, 1997; Mosler, 2002) exactly based on the algorithm of Dyckerhoff, Koshevoy and Mosler (1996), implemented in C++ (and provided) by Rainer Dyckerhoff. } \value{ Numerical vector of depths, one for each row in \code{x}; or one depth value if \code{x} is a numerical vector. } \references{ Dyckerhoff, R., Koshevoy, G., and Mosler, K. (1996). Zonoid data depth: theory and computation. In: Prat A. (ed), \emph{COMPSTAT 1996. Proceedings in computational statistics}, Physica-Verlag (Heidelberg), 235--240. Koshevoy, G. and Mosler, K. (1997). Zonoid trimming for multivariate distributions \emph{Annals of Statistics} \bold{25} 1998--2017. Mosler, K. (2002). \emph{Multivariate dispersion, central regions and depth: the lift zonoid approach} Springer (New York). } \seealso{ \code{\link{depth.halfspace}} for calculation of the Tukey depth. \code{\link{depth.Mahalanobis}} for calculation of Mahalanobis depth. \code{\link{depth.projection}} for calculation of projection depth. \code{\link{depth.simplicial}} for calculation of simplicial depth. \code{\link{depth.simplicialVolume}} for calculation of simplicial volume depth. \code{\link{depth.spatial}} for calculation of spatial depth. \code{\link{depth.potential}} for calculation of data potential. } \examples{ # 5-dimensional normal distribution data <- mvrnorm(1000, rep(0, 5), matrix(c(1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1), nrow = 5)) x <- mvrnorm(10, rep(1, 5), matrix(c(1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), nrow = 5)) depths <- depth.zonoid(x, data) cat("Depths: ", depths, "\n") } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } ddalpha/man/dataf.medflies.Rd0000644000176200001440000000606013160003425015553 0ustar liggesusers\name{dataf.medflies} \alias{dataf.medflies} \docType{data} \title{ Relationship of Age Patterns of Fecundity to Mortality for Female Medflies. } \description{ The data set consists of number of eggs laid daily for each of 1000 medflies (Mediterranean fruit flies, Ceratitis capitata) until time of death. Data were obtained in Dr. Carey's laboratory. The main questions are to explore the relationship of age patterns of fecundity to mortality, longevity and lifetime reproduction. A basic finding was that individual mortality is associated with the time-dynamics of the egg-laying trajectory. An approximate parametric model of the egg laying process was developed and used in Muller et al. (2001). Non-parametric approaches which extend principal component analysis for curve data to the situation when covariates are present have been developed and discussed in Chiou, Muller and Wang (2003) and Chiou et al. (2003). } \usage{ dataf.medflies() } \format{ The functional data as a data structure. \describe{ \item{\code{dataf}}{ The functional data as a list of objects. Each object is characterized by two coordinates. \describe{ \item{\code{args}}{\bold{day} - a numeric vector of the days numbers} \item{\code{vals}}{\bold{#eggs} - a numeric vector of numbers of eggs laid daily} } } \item{\code{labels}}{The classes of the objects: long-lived, short-lived} } } \source{ Carey, J.R., Liedo, P., Muller, H.G., Wang, J.L., Chiou, J.M. (1998). Relationship of age patterns of fecundity to mortality, longevity, and lifetime reproduction in a large cohort of Mediterranean fruit fly females. J. of Gerontology --Biological Sciences 53, 245-251. Muller, H.G., Carey, J.R., Wu, D., Liedo, P., Vaupel, J.W. (2001). Reproductive potential predicts longevity of female Mediterranean fruit flies. Proceedings of the Royal Society B 268, 445-450. Chiou, J.M., Muller, H.G., Wang, J.L. (2003). Functional quasi-likelihood regression models with smooth random effects. J. Royal Statist. Soc. B65, 405-423. Chiou, J.M., Muller, H.G., Wang, J.L., Carey, J.R. (2003). A functional multiplicative effects model for longitudinal data, with application to reproductive histories of female medflies. Statistica Sinica 13, 1119-1133. Chiou, J.M., Muller, H.G., Wang, J.L. (2004).Functional response models. Statistica Sinica 14,675-693. } \seealso{ \code{\link{dataf.*}} for other functional data sets \code{\link{plot.functional}} for building plots of functional data } \examples{ ## load the dataset dataf = dataf.medflies() ## view the classes unique(dataf$labels) ## access the 5th point of the 2nd object dataf$dataf[[2]]$args[5] dataf$dataf[[2]]$vals[5] ## plot the data \dontrun{ labels = unlist(dataf$labels) plot(dataf, xlab="Day", ylab="# eggs", main=paste("Medflies (training time):\n short-lived red (", sum(labels == "short-lived"), "),", " long-lived blue (", sum(labels == "long-lived"), ")", sep=""), colors = c("blue", "red") # in alphabetical order of class labels ) } } \keyword{datasets} \keyword{functional} ddalpha/man/ddalphaf.classify.Rd0000644000176200001440000000346613162264644016311 0ustar liggesusers\name{ddalphaf.classify} \alias{ddalphaf.classify} \alias{predict.ddalphaf} \title{ Classify using Functional DD-Classifier } \description{ Classifies data using the functional DD-classifier. } \usage{ ddalphaf.classify(ddalphaf, objectsf, subset, ...) \method{predict}{ddalphaf}(object, objectsf, subset, ...) } \arguments{ \item{ddalphaf, object}{ Functional DD-classifier (obtained by \code{\link{ddalphaf.train}}). } \item{objectsf}{list containing lists (functions) of two vectors of equal length, named "args" and "vals": arguments sorted in ascending order and corresponding them values respectively } \item{subset}{ an optional vector specifying a subset of observations to be classified. } \item{\dots}{ additional parameters, passed to the classifier, selected with parameter \code{classifier.type} in \code{\link{ddalphaf.train}}. } } \value{ List containing class labels. } \references{ Mosler, K. and Mozharovskyi, P. (2015). Fast DD-classification of functional data, \emph{Statistical Papers}, in press. Mozharovskyi, P. (2015). \emph{Contributions to Depth-based Classification and Computation of the Tukey Depth}. Verlag Dr. Kovac (Hamburg). } \seealso{ \code{\link{ddalphaf.train}} to train the functional DD\eqn{\alpha}-classifier. } \examples{ \dontrun{ ## load the Growth dataset dataf = dataf.growth() learn = c(head(dataf$dataf, 49), tail(dataf$dataf, 34)) labels= c(head(dataf$labels, 49), tail(dataf$labels, 34)) test = tail(head(dataf$dataf, 59), 10) # elements 50:59. 5 girls, 5 boys c = ddalphaf.train (learn, labels, classifier.type = "ddalpha") classified = ddalphaf.classify(c, test) print(unlist(classified)) } } \keyword{ functional } \keyword{ robust } \keyword{ multivariate } \keyword{ nonparametric } \keyword{ classif }ddalpha/man/depthf.ABD.Rd0000644000176200001440000000646513162365543014573 0ustar liggesusers\name{depthf.ABD} \alias{depthf.ABD} \title{Adjusted Band Depth for Functional Data} \usage{ depthf.ABD(datafA, datafB, range = NULL, d = 101, norm = c("C", "L2"), J = 2, K = 1) } \arguments{ \item{datafA}{Functions whose depth is computed, represented by a \code{dataf} object of their arguments and functional values. \code{m} stands for the number of functions.} \item{datafB}{Random sample functions with respect to which the depth of \code{datafA} is computed. \code{datafB} is represented by a \code{dataf} object of their arguments and functional values. \code{n} is the sample size. The grid of observation points for the functions \code{datafA} and \code{datafB} may not be the same.} \item{range}{The common range of the domain where the functions \code{datafA} and \code{datafB} are observed. Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in \code{datafA} and \code{datafB}.} \item{d}{Grid size to which all the functional data are transformed. For depth computation, all functional observations are first transformed into vectors of their functional values of length \code{d} corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these points are reconstructed using linear interpolation, and extrapolation, see Nagy et al. (2016).} \item{norm}{The norm used for the computation of the depth. Two possible choices are implemented: \code{C} for the uniform norm of continuous functions, and \code{L2} for the \eqn{L^2} norm of integrable functions.} \item{J}{The order of the adjusted band depth, that is the maximal number of functions taken in a band. Acceptable values are \code{2}, \code{3},... By default this value is set to \code{2}. Note that this is NOT the order as defined in the order-extended version of adjusted band depths in Nagy et al. (2016), used for the detection of shape outlying curves.} \item{K}{Number of sub-samples of the functions from \code{B} taken to speed up the computation. By default, sub-sampling is not performed. Values of \code{K} larger than \code{1} result in an approximation of the adjusted band depth.} } \value{ A vectors of length \code{m} of the adjusted band depths. } \description{ The adjusted band depth of functional real-valued data based on either the \eqn{C} (uniform) norm, or on the \eqn{L^2} norm of functions. } \details{ The function returns the vector of the sample adjusted band depth values. The kernel used in the evaluation is the function \eqn{K(u) = exp(-u)}. } \examples{ datafA = dataf.population()$dataf[1:20] datafB = dataf.population()$dataf[21:50] depthf.ABD(datafA,datafB) depthf.ABD(datafA,datafB,norm="L2") } \references{ Gijbels, I., Nagy, S. (2015). Consistency of non-integrated depths for functional data. \emph{Journal of Multivariate Analysis} \bold{140}, 259--282. Nagy, S., Gijbels, I. and Hlubinka, D. (2016). Weak convergence of discretely observed functional data with applications. \emph{Journal of Multivariate Analysis}, \bold{146}, 46--62. Nagy, S., Gijbels, I. and Hlubinka, D. (2017). Depth-based recognition of shape outlying functions. \emph{Journal of Computational and Graphical Statistics}. To appear. } \seealso{ \code{\link{depthf.BD}} } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{depth} \keyword{functional} ddalpha/man/dataf2rawfd.Rd0000644000176200001440000000443113162365543015110 0ustar liggesusers\name{dataf2rawfd} \alias{dataf2rawfd} \title{Transform a \code{dataf} Object to Raw Functional Data} \usage{ dataf2rawfd(dataf, range = NULL, d = 101) } \arguments{ \item{dataf}{Functions to be transformed, represented by a (possibly multivariate) \code{dataf} object of their arguments and functional values. \code{m} stands for the number of functions. The grid of observation points for the functions in \code{dataf} may not be the same.} \item{range}{The common range of the domain where the functions \code{dataf} are observed. Vector of length 2 with the left and the right end of the interval. Must contain all arguments given in \code{dataf}. If the range is not provided, the smallest interval in which all the arguments from the data functions are contained is chosen as the domain.} \item{d}{Grid size to which all the functional data are transformed. All functional observations are transformed into vectors of their functional values of length \code{d} corresponding to equi-spaced points in the domain given by the interval \code{range}. Functional values in these points are reconstructed using linear interpolation, and extrapolation, see Nagy et al. (2016).} } \value{ If the functional data are univariate (scalar-valued), a matrix of size \code{m*d} is given, with each row corresponding to one function. If the functional data are \code{k}-variate with k>1, an array of size \code{m*d*k} of the functional values is given. } \description{ From a (possibly multivariate) functional data object \code{dataf} constructs an array of the functional values evaluated at an equi-distant grid of points. } \examples{ ## transform a matrix into a functional data set and back n = 5 d = 21 X = matrix(rnorm(n*d),ncol=d) R = rawfd2dataf(X,range=c(0,1)) R2 = dataf2rawfd(R,range=c(0,1),d=d) all.equal(X,R2) ## transform a functional dataset into a raw matrix of functional values dataf = dataf.population()$dataf dataf2rawfd(dataf,range=c(1950,2015),d=66) ## transform an array into a multivariate functional data set and back k = 3 X = array(rnorm(n*d*k),dim=c(n,d,k)) R = rawfd2dataf(X,range=c(-1,1)) dataf2rawfd(R,range=c(-1,1),d=50) } \seealso{ \code{\link{rawfd2dataf}} \code{\link{depthf.fd1}} \code{\link{depthf.fd2}} } \author{ Stanislav Nagy, \email{nagy at karlin.mff.cuni.cz} } \keyword{functional} ddalpha/man/depth.contours.ddalpha.Rd0000644000176200001440000000350513160003425017261 0ustar liggesusers\name{depth.contours.ddalpha} \alias{depth.contours.ddalpha} \title{ Depth Contours } \description{ Builds the data depth contours for multiclass 2-dimensional data using the trained classifier. Also accessible from \code{\link{plot.ddalpha}}. } \usage{ depth.contours.ddalpha(ddalpha, main = "", xlab="", ylab = "", drawplot = T, frequency=100, levels = 10, drawsep = T, ...) } \arguments{ \item{ddalpha}{ DD\eqn{\alpha}-classifier (obtained by \code{\link{ddalpha.train}}). } \item{main}{ an overall title for the plot: see \code{\link{title}} } \item{xlab, ylab}{ labels of the axes } \item{drawplot}{ if set to false, the contours are built on the existing plot. } \item{frequency}{ number of points on each direction, x and y. Impacts the smoothness of the contours. } \item{levels}{ numeric vector of levels at which to draw contour lines. If the vector contains only ONE element, the levels are generated automatically as \code{seq(0, max(depth), length.out = levels)}. } \item{drawsep}{ draws the separation on the DD-plot (currently for 2 classes and not for knn) } \item{\dots}{ additional parameters passed to the depth functions and to \code{\link{plot}} } } \seealso{ \code{\link{depth.}}, \code{\link{depth.contours}}, \code{\link{depth.graph}}. } \examples{ \dontrun{ par(mfrow = c(2,2)) data(hemophilia) ddalpha = ddalpha.train(hemophilia, depth = "none") depth.contours.ddalpha(ddalpha, main = "data") for (depth in c("zonoid", "Mahalanobis", "projection", "spatial")){ ddalpha = ddalpha.train(hemophilia, depth = depth) depth.contours.ddalpha(ddalpha, main = depth) } for (depth in c("halfspace", "simplicial", "simplicialVolume")){ ddalpha = ddalpha.train(hemophilia, depth = depth, exact = T) depth.contours.ddalpha(ddalpha, main = depth) } } } \keyword{ visualization } ddalpha/man/depth.space.simplicial.Rd0000644000176200001440000000573213160003425017235 0ustar liggesusers\name{depth.space.simplicial} \alias{depth.space.simplicial} \title{ Calculate Depth Space using Simplicial Depth } \description{ Calculates the representation of the training classes in depth space using simplicial depth. } \usage{ depth.space.simplicial(data, cardinalities, exact = F, k = 0.05, seed = 0) } \arguments{ \item{data}{ Matrix containing training sample where each row is a \eqn{d}-dimensional object, and objects of each class are kept together so that the matrix can be thought of as containing blocks of objects representing classes. } \item{cardinalities}{ Numerical vector of cardinalities of each class in \code{data}, each entry corresponds to one class. } \item{exact}{ \code{exact=F} (by default) implies the approximative algorithm, considering \code{k} simplices, \code{exact=T} implies the exact algorithm. } \item{k}{ Number (\eqn{k>1}) or portion (if \eqn{01}, then the algorithmic complexity is polynomial in \eqn{d} but is independent of the number of observations in \code{data}, given \eqn{k}. If \eqn{0"}). } \item{\dots}{ Additional parameters passed to the depth functions. } } \seealso{ \code{\link{depthf.ABD}} \code{\link{depthf.BD}} \code{\link{depthf.fd1}} \code{\link{depthf.fd2}} \code{\link{depthf.hM}} \code{\link{depthf.hM2}} \code{\link{depthf.HR}} \code{\link{depthf.RP1}} \code{\link{depthf.RP2}} } \value{ Numerical vector of depths, one for each function in \code{datafA}; or one depth value if \code{datafA} is a single function. } \examples{ # real data example datafA = dataf.population()$dataf[1:20] datafB = dataf.population()$dataf[21:50] depthf.(datafA, datafB, notion = "HR") dataf2A = derivatives.est(datafA,deriv=c(0,1)) dataf2B = derivatives.est(datafB,deriv=c(0,1)) depthf.(dataf2A, dataf2B, notion = "fd2") } \keyword{ robust } \keyword{ functional } \keyword{ nonparametric } ddalpha/man/is.in.convex.Rd0000644000176200001440000000534613160003425015234 0ustar liggesusers\name{is.in.convex} \alias{is.in.convex} \title{ Check Outsiderness } \description{ Checks the belonging to at least one of class convex hulls of the training sample. } \usage{ is.in.convex(x, data, cardinalities, seed = 0) } \arguments{ \item{x}{ Matrix of objects (numerical vector as one object) whose belonging to convex hulls is to be checked; each row contains a \eqn{d}-variate point. Should have the same dimension as \code{data}. } \item{data}{ Matrix containing training sample where each row is a \eqn{d}-dimensional object, and objects of each class are kept together so that the matrix can be thought of as containing blocks of objects, representing classes. } \item{cardinalities}{ Numerical vector of cardinalities of each class in \code{data}, each entry corresponds to one class. } \item{seed}{ the random seed. The default value \code{seed=0} makes no changes. } } \details{ Checks are conducted w.r.t. each separate class in \code{data} using the simplex algorithm, taken from the C++ implementation of the zonoid depth calculation by Rainer Dyckerhoff. } \value{ Matrix of \code{number of objects} rows and \code{number of classes} columns, containing \code{1} if an object belongs to the convex hull of the corresponding class, and \code{0} otherwise. } \references{ Dyckerhoff, R., Koshevoy, G., and Mosler, K. (1996). Zonoid data depth: theory and computation. In: Prat A. (ed), \emph{COMPSTAT 1996. Proceedings in computational statistics}, Physica-Verlag (Heidelberg), 235--240. } \author{ Implementation of the simplex algorithm is taken from the algorithm for computation of zonoid depth (Dyckerhoff, Koshevoy and Mosler, 1996) that has been implemented in C++ by Rainer Dyckerhoff. } \seealso{ \code{\link{ddalpha.train}} and \code{\link{ddalpha.classify}} for application. } \examples{ # Generate a bivariate normal location-shift classification task # containing 400 training objects and 1000 to test with class1 <- mvrnorm(700, c(0,0), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) class2 <- mvrnorm(700, c(2,2), matrix(c(1,1,1,4), nrow = 2, ncol = 2, byrow = TRUE)) trainIndices <- c(1:200) testIndices <- c(201:700) propertyVars <- c(1:2) classVar <- 3 trainData <- rbind(cbind(class1[trainIndices,], rep(1, 200)), cbind(class2[trainIndices,], rep(2, 200))) testData <- rbind(cbind(class1[testIndices,], rep(1, 500)), cbind(class2[testIndices,], rep(2, 500))) data <- list(train = trainData, test = testData) # Count outsiders numOutsiders = sum(rowSums(is.in.convex(data$test[,propertyVars], data$train[,propertyVars], c(200, 200))) == 0) cat(numOutsiders, "outsiders found in the testing sample.\n") } \keyword{ multivariate }