The R Project SVN R

Rev

Rev 89919 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 89919 Rev 89925
Line 199... Line 199...
199
    double *rx = REAL(x), *rs = REAL(s);
199
    double *rx = REAL(x), *rs = REAL(s);
200
	rs[0] = NA_REAL; /* variance of one (first) element is always NA */
200
	rs[0] = NA_REAL; /* variance of one (first) element is always NA */
201
	sum = rx[0];
201
	sum = rx[0];
202
    for (R_xlen_t i = 1 ; i < XLENGTH(x) ; i++) {
202
    for (R_xlen_t i = 1 ; i < XLENGTH(x) ; i++) {
203
	sum += rx[i];
203
	sum += rx[i];
204
	var += (LDOUBLE) pow(((i + 1) * rx[i] - sum), 2.0) / (i * (i + 1)); /* NA and NaN propagated */
204
	var += (LDOUBLE) (pow(((i + 1) * rx[i] - sum), 2.0) / (i * (i + 1))); /* NA and NaN propagated */
205
	rs[i] = (double) var / i;
205
	rs[i] = (double) (var / i);
206
    }
206
    }
207
    return ISNAN(var) ? handleNaN(x, s) : s;
207
    return ISNAN(var) ? handleNaN(x, s) : s;
208
}
208
}
209
 
209
 
210
attribute_hidden SEXP do_cum(SEXP call, SEXP op, SEXP args, SEXP env)
210
attribute_hidden SEXP do_cum(SEXP call, SEXP op, SEXP args, SEXP env)