Exemplo n.º 1
0
    Rcpp::NumericVector glmerResp::wrkResids() const {
#ifdef USE_RCPP_SUGAR
	return (d_y - d_mu)/muEta();
#else
	NumericVector rr(d_y.size()), me = muEta();
	std::transform(d_y.begin(), d_y.end(), d_mu.begin(),
		       rr.begin(), std::minus<double>());
	std::transform(rr.begin(), rr.end(), me.begin(),
		       rr.begin(), std::divides<double>());
	return rr;
#endif
    }
Exemplo n.º 2
0
    double glmerResp::updateWts() {
#ifdef USE_RCPP_SUGAR
	d_sqrtrwt = sqrt(d_weights/variance());
	NumericVector tmp = muEta() * d_sqrtrwt;
#else
	NumericVector vv = variance();
	std::transform(d_weights.begin(), d_weights.end(), vv.begin(),
		       d_sqrtrwt.begin(), std::divides<double>());
	std::transform(d_sqrtrwt.begin(), d_sqrtrwt.end(),
		       d_sqrtrwt.begin(), &::sqrt);
	NumericVector tmp = muEta();
	std::transform(tmp.begin(), tmp.end(), d_sqrtrwt.begin(),
		       tmp.begin(), std::multiplies<double>());
#endif
	std::copy(tmp.begin(), tmp.end(), d_sqrtXwt.begin());
	
	return updateWrss();
    }
Exemplo n.º 3
0
    Rcpp::NumericVector glmerResp::sqrtWrkWt() const {
	NumericVector me = muEta();
#ifdef USE_RCPP_SUGAR
	return sqrt(d_weights * me * me / variance());
#else
	NumericVector vv = variance();
	std::transform(me.begin(), me.end(), me.begin(), me.begin(),
		       std::multiplies<double>());
	std::transform(me.begin(), me.end(), d_weights.begin(),
		       me.begin(), std::multiplies<double>());
	std::transform(me.begin(), me.end(), vv.begin(), me.begin(),
		       std::divides<double>());
	std::transform(me.begin(), me.end(), me.begin(), &::sqrt);
	return me;
#endif	
    }
Exemplo n.º 4
0
    Rcpp::NumericVector glmResp::sqrtWrkWt() const {
	Rcpp::NumericVector me = muEta();
	return sqrt(d_weights * me * me / variance());
    }
Exemplo n.º 5
0
    Rcpp::NumericVector glmResp::wrkResids() const {
	return (d_y - d_mu)/muEta();
    }