// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
//
// rmath.cpp: Rcpp R/C++ interface class library -- rmath unit tests
//
// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
//
// This file is part of Rcpp.
//
// Rcpp is free software: you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 2 of the License, or
// (at your option) any later version.
//
// Rcpp is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Rcpp. If not, see .
#include
using namespace Rcpp ;
// ------------------- Normal Distribution
// [[Rcpp::export]]
NumericVector runit_dnorm( double x, double a, double b ){
return NumericVector::create(R::dnorm(x, a, b, 0), R::dnorm(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_pnorm( double x, double a, double b ){
return NumericVector::create(R::pnorm(x, a, b, 1, 0), R::pnorm(log(x), a, b, 1, 1),
R::pnorm(x, a, b, 0, 0), R::pnorm(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qnorm( double x, double a, double b ){
return NumericVector::create(R::qnorm(x, a, b, 1, 0), R::qnorm(log(x), a, b, 1, 1),
R::qnorm(x, a, b, 0, 0), R::qnorm(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rnorm( double a, double b ){
NumericVector o(5);
for (int i = 0; i < o.size(); i++) {
o[i] = R::rnorm(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rnorm_sugar(double a, double b) {
return Rcpp::rnorm(5, a, b);
}
// ------------------- Uniform Distribution
// [[Rcpp::export]]
NumericVector runit_dunif( double x, double a, double b ){
return NumericVector::create(R::dunif(x, a, b, 0), R::dunif(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_punif( double x, double a, double b ){
return NumericVector::create(R::punif(x, a, b, 1, 0), R::punif(log(x), a, b, 1, 1),
R::punif(x, a, b, 0, 0), R::punif(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qunif( double x, double a, double b ){
return NumericVector::create(R::qunif(x, a, b, 1, 0), R::qunif(log(x), a, b, 1, 1),
R::qunif(x, a, b, 0, 0), R::qunif(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_runif( double a, double b ){
NumericVector o(5);
for (int i = 0; i < o.size(); i++) {
o[i] = R::runif(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_runif_sugar( double a, double b ){
return Rcpp::runif(5, a, b);
}
// ------------------- Gamma Distribution
// [[Rcpp::export]]
NumericVector runit_dgamma( double x, double a, double b ){
return NumericVector::create(R::dgamma(x, a, b, 0), R::dgamma(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_pgamma( double x, double a, double b ){
return NumericVector::create(R::pgamma(x, a, b, 1, 0), R::pgamma(log(x), a, b, 1, 1),
R::pgamma(x, a, b, 0, 0), R::pgamma(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qgamma( double x, double a, double b ){
return NumericVector::create(R::qgamma(x, a, b, 1, 0), R::qgamma(log(x), a, b, 1, 1),
R::qgamma(x, a, b, 0, 0), R::qgamma(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rgamma(double a, double b) {
NumericVector o(5);
for (int i = 0; i < o.size(); i++) {
o[i] = R::rgamma(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rgamma_sugar(double a, double b) {
return Rcpp::rgamma(5, a, b);
}
// ------------------- Beta Distribution
// [[Rcpp::export]]
NumericVector runit_dbeta( double x, double a, double b ){
return NumericVector::create(R::dbeta(x, a, b, 0), R::dbeta(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_pbeta( double x, double a, double b ){
return NumericVector::create(R::pbeta(x, a, b, 1, 0), R::pbeta(log(x), a, b, 1, 1),
R::pbeta(x, a, b, 0, 0), R::pbeta(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qbeta( double x, double a, double b ){
return NumericVector::create(R::qbeta(x, a, b, 1, 0), R::qbeta(log(x), a, b, 1, 1),
R::qbeta(x, a, b, 0, 0), R::qbeta(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rbeta(double a, double b) {
NumericVector o(5);
for (int i = 0; i < o.size(); i++) {
o[i] = R::rbeta(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rbeta_sugar(double a, double b) {
return Rcpp::rbeta(5, a, b);
}
// ------------------- Log Normal Distribution
// [[Rcpp::export]]
NumericVector runit_dlnorm( double x, double a, double b ){
return NumericVector::create(R::dlnorm(x, a, b, 0), R::dlnorm(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_plnorm( double x, double a, double b ){
return NumericVector::create(R::plnorm(x, a, b, 1, 0), R::plnorm(log(x), a, b, 1, 1),
R::plnorm(x, a, b, 0, 0), R::plnorm(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qlnorm( double x, double a, double b ){
return NumericVector::create(R::qlnorm(x, a, b, 1, 0), R::qlnorm(log(x), a, b, 1, 1),
R::qlnorm(x, a, b, 0, 0), R::qlnorm(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rlnorm(double a, double b) {
NumericVector o(5);
for (int i = 0; i < o.size(); i++) {
o[i] = R::rlnorm(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rlnorm_sugar(double a, double b) {
return Rcpp::rlnorm(5, a, b);
}
// ------------------- Chi-Squared Distribution
// [[Rcpp::export]]
NumericVector runit_dchisq( double x, double a ){
return NumericVector::create(R::dchisq(x, a, 0), R::dchisq(x, a, 1));
}
// [[Rcpp::export]]
NumericVector runit_pchisq( double x, double a ){
return NumericVector::create(R::pchisq(x, a, 1, 0), R::pchisq(log(x), a, 1, 1),
R::pchisq(x, a, 0, 0), R::pchisq(log(x), a, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qchisq( double x, double a ){
return NumericVector::create(R::qchisq(x, a, 1, 0), R::qchisq(log(x), a, 1, 1),
R::qchisq(x, a, 0, 0), R::qchisq(log(x), a, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rchisq(double a) {
NumericVector o(5);
for (int i = 0; i < o.size(); i++) {
o[i] = R::rchisq(a);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rchisq_sugar(double a) {
return Rcpp::rchisq(5, a);
}
// ------------------- Non-central Chi-Squared Distribution
// [[Rcpp::export]]
NumericVector runit_dnchisq( double x, double a, double b ){
return NumericVector::create(R::dnchisq(x, a, b, 0), R::dnchisq(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_pnchisq( double x, double a, double b ){
return NumericVector::create(R::pnchisq(x, a, b, 1, 0), R::pnchisq(log(x), a, b, 1, 1),
R::pnchisq(x, a, b, 0, 0), R::pnchisq(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qnchisq( double x, double a, double b ){
return NumericVector::create(R::qnchisq(x, a, b, 1, 0), R::qnchisq(log(x), a, b, 1, 1),
R::qnchisq(x, a, b, 0, 0), R::qnchisq(log(x), a, b, 0, 1));
}
// ------------------- F Distribution
// [[Rcpp::export]]
NumericVector runit_df( double x, double a, double b ){
return NumericVector::create(R::df(x, a, b, 0), R::df(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_pf( double x, double a, double b ){
return NumericVector::create(R::pf(x, a, b, 1, 0), R::pf(log(x), a, b, 1, 1),
R::pf(x, a, b, 0, 0), R::pf(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qf( double x, double a, double b ){
return NumericVector::create(R::qf(x, a, b, 1, 0), R::qf(log(x), a, b, 1, 1),
R::qf(x, a, b, 0, 0), R::qf(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rf(double a, double b) {
NumericVector o(5);
for (int i = 0; i < o.size(); i++) {
o[i] = R::rf(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rf_sugar(double a, double b) {
return Rcpp::rf(5, a, b);
}
// ------------------- Student t Distribution
// [[Rcpp::export]]
NumericVector runit_dt( double x, double a ){
return NumericVector::create(R::dt(x, a, 0), R::dt(x, a, 1));
}
// [[Rcpp::export]]
NumericVector runit_pt( double x, double a ){
return NumericVector::create(R::pt(x, a, 1, 0), R::pt(log(x), a, 1, 1),
R::pt(x, a, 0, 0), R::pt(log(x), a, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qt( double x, double a ){
return NumericVector::create(R::qt(x, a, 1, 0), R::qt(log(x), a, 1, 1),
R::qt(x, a, 0, 0), R::qt(log(x), a, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rt(double a) {
NumericVector o(5);
for(int i = 0; i < o.size(); i++) {
o[i] = R::rt(a);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rt_sugar(double a) {
return Rcpp::rt(5, a);
}
// ------------------- Binomial Distribution
// [[Rcpp::export]]
NumericVector runit_dbinom( double x, double a, double b ){
return NumericVector::create(R::dbinom(x, a, b, 0), R::dbinom(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_pbinom( double x, double a, double b ){
return NumericVector::create(R::pbinom(x, a, b, 1, 0), R::pbinom(log(x), a, b, 1, 1),
R::pbinom(x, a, b, 0, 0), R::pbinom(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qbinom( double x, double a, double b ){
return NumericVector::create(R::qbinom(x, a, b, 1, 0), R::qbinom(log(x), a, b, 1, 1),
R::qbinom(x, a, b, 0, 0), R::qbinom(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rbinom(double a, double b) {
NumericVector o(5);
for(int i = 0; i < o.size(); i++) {
o[i] = R::rbinom(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rbinom_sugar(double a, double b) {
return Rcpp::rbinom(5, a, b);
}
// ------------------- Cauchy Distribution
// [[Rcpp::export]]
NumericVector runit_dcauchy( double x, double a, double b ){
return NumericVector::create(R::dcauchy(x, a, b, 0), R::dcauchy(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_pcauchy( double x, double a, double b ){
return NumericVector::create(R::pcauchy(x, a, b, 1, 0), R::pcauchy(log(x), a, b, 1, 1),
R::pcauchy(x, a, b, 0, 0), R::pcauchy(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qcauchy( double x, double a, double b ){
return NumericVector::create(R::qcauchy(x, a, b, 1, 0), R::qcauchy(log(x), a, b, 1, 1),
R::qcauchy(x, a, b, 0, 0), R::qcauchy(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rcauchy(double a, double b) {
NumericVector o(5);
for(int i = 0; i < o.size(); i++) {
o[i] = R::rcauchy(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rcauchy_sugar(double a, double b) {
return Rcpp::rcauchy(5, a, b);
}
// ------------------- Exponential Distribution
// [[Rcpp::export]]
NumericVector runit_dexp( double x, double a ){
return NumericVector::create(R::dexp(x, a, 0), R::dexp(x, a, 1));
}
// [[Rcpp::export]]
NumericVector runit_pexp( double x, double a ){
return NumericVector::create(R::pexp(x, a, 1, 0), R::pexp(log(x), a, 1, 1),
R::pexp(x, a, 0, 0), R::pexp(log(x), a, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qexp( double x, double a ){
return NumericVector::create(R::qexp(x, a, 1, 0), R::qexp(log(x), a, 1, 1),
R::qexp(x, a, 0, 0), R::qexp(log(x), a, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rexp(double a) {
NumericVector o(5);
for(int i = 0; i < o.size(); i++) {
o[i] = R::rexp(a);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rexp_sugar(double a) {
return Rcpp::rexp(5, a);
}
// ------------------- Geometric Distribution
// [[Rcpp::export]]
NumericVector runit_dgeom( double x, double a ){
return NumericVector::create(R::dgeom(x, a, 0), R::dgeom(x, a, 1));
}
// [[Rcpp::export]]
NumericVector runit_pgeom( double x, double a ){
return NumericVector::create(R::pgeom(x, a, 1, 0), R::pgeom(log(x), a, 1, 1),
R::pgeom(x, a, 0, 0), R::pgeom(log(x), a, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qgeom( double x, double a ){
return NumericVector::create(R::qgeom(x, a, 1, 0), R::qgeom(log(x), a, 1, 1),
R::qgeom(x, a, 0, 0), R::qgeom(log(x), a, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rgeom(double a) {
NumericVector o(5);
for (int i = 0; i < o.size(); i++) {
o[i] = R::rgeom(a);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rgeom_sugar(double a) {
return Rcpp::rgeom(5, a);
}
// ------------------- Hypergeometric Distribution
// [[Rcpp::export]]
NumericVector runit_dhyper( double x, double a, double b, double c ){
return NumericVector::create(R::dhyper(x, a, b, c, 0), R::dhyper(x, a, b, c, 1));
}
// [[Rcpp::export]]
NumericVector runit_phyper( double x, double a, double b, double c ){
return NumericVector::create(R::phyper(x, a, b, c, 1, 0), R::phyper(log(x), a, b, c, 1, 1),
R::phyper(x, a, b, c, 0, 0), R::phyper(log(x), a, b, c, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qhyper( double x, double a, double b, double c ){
return NumericVector::create(R::qhyper(x, a, b, c, 1, 0), R::qhyper(log(x), a, b, c, 1, 1),
R::qhyper(x, a, b, c, 0, 0), R::qhyper(log(x), a, b, c, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rhyper(double a, double b, double c) {
NumericVector o(5);
for(int i = 0; i < o.size(); i++) {
o[i] = R::rhyper(a, b, c);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rhyper_sugar(double a, double b, double c) {
return Rcpp::rhyper(5, a, b, c);
}
// ------------------- Negative Binomial Distribution
// [[Rcpp::export]]
NumericVector runit_dnbinom( double x, double a, double b ){
return NumericVector::create(R::dnbinom(x, a, b, 0), R::dnbinom(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_pnbinom( double x, double a, double b ){
return NumericVector::create(R::pnbinom(x, a, b, 1, 0), R::pnbinom(log(x), a, b, 1, 1),
R::pnbinom(x, a, b, 0, 0), R::pnbinom(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qnbinom( double x, double a, double b ){
return NumericVector::create(R::qnbinom(x, a, b, 1, 0), R::qnbinom(log(x), a, b, 1, 1),
R::qnbinom(x, a, b, 0, 0), R::qnbinom(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rnbinom(double a, double b) {
NumericVector o(5);
for(int i = 0; i < o.size(); i++) {
o[i] = R::rnbinom(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rnbinom_sugar(double a, double b) {
return Rcpp::rnbinom(5, a, b);
}
// ------------------- Poisson Distribution
// [[Rcpp::export]]
NumericVector runit_dpois( double x, double a ){
return NumericVector::create(R::dpois(x, a, 0), R::dpois(x, a, 1));
}
// [[Rcpp::export]]
NumericVector runit_ppois( double x, double a ){
return NumericVector::create(R::ppois(x, a, 1, 0), R::ppois(log(x), a, 1, 1),
R::ppois(x, a, 0, 0), R::ppois(log(x), a, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qpois( double x, double a ){
return NumericVector::create(R::qpois(x, a, 1, 0), R::qpois(log(x), a, 1, 1),
R::qpois(x, a, 0, 0), R::qpois(log(x), a, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rpois(double a) {
NumericVector o(5);
for(int i = 0; i < o.size(); i++) {
o[i] = R::rpois(a);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rpois_sugar(double a) {
return Rcpp::rpois(5, a);
}
// ------------------- Weibull Distribution
// [[Rcpp::export]]
NumericVector runit_dweibull( double x, double a, double b ){
return NumericVector::create(R::dweibull(x, a, b, 0), R::dweibull(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_pweibull( double x, double a, double b ){
return NumericVector::create(R::pweibull(x, a, b, 1, 0), R::pweibull(log(x), a, b, 1, 1),
R::pweibull(x, a, b, 0, 0), R::pweibull(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qweibull( double x, double a, double b ){
return NumericVector::create(R::qweibull(x, a, b, 1, 0), R::qweibull(log(x), a, b, 1, 1),
R::qweibull(x, a, b, 0, 0), R::qweibull(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rweibull(double a, double b) {
NumericVector o(5);
for(int i = 0; i < o.size(); i++) {
o[i] = R::rweibull(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rweibull_sugar(double a, double b) {
return Rcpp::rweibull(5, a, b);
}
// ------------------- Logistic Distribution
// [[Rcpp::export]]
NumericVector runit_dlogis( double x, double a, double b ){
return NumericVector::create(R::dlogis(x, a, b, 0), R::dlogis(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_plogis( double x, double a, double b ){
return NumericVector::create(R::plogis(x, a, b, 1, 0), R::plogis(log(x), a, b, 1, 1),
R::plogis(x, a, b, 0, 0), R::plogis(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qlogis( double x, double a, double b ){
return NumericVector::create(R::qlogis(x, a, b, 1, 0), R::qlogis(log(x), a, b, 1, 1),
R::qlogis(x, a, b, 0, 0), R::qlogis(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rlogis(double a, double b) {
NumericVector o(5);
for(int i = 0; i < o.size(); i++) {
o[i] = R::rlogis(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rlogis_sugar(double a, double b) {
return Rcpp::rlogis(5, a, b);
}
// ------------------- Non-central Beta Distribution
// [[Rcpp::export]]
NumericVector runit_dnbeta( double x, double a, double b, double c ){
return NumericVector::create(R::dnbeta(x, a, b, c, 0), R::dnbeta(x, a, b, c, 1));
}
// [[Rcpp::export]]
NumericVector runit_pnbeta( double x, double a, double b, double c ){
return NumericVector::create(R::pnbeta(x, a, b, c, 1, 0), R::pnbeta(log(x), a, b, c, 1, 1),
R::pnbeta(x, a, b, c, 0, 0), R::pnbeta(log(x), a, b, c, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qnbeta( double x, double a, double b, double c ){
return NumericVector::create(R::qnbeta(x, a, b, c, 1, 0), R::qnbeta(log(x), a, b, c, 1, 1),
R::qnbeta(x, a, b, c, 0, 0), R::qnbeta(log(x), a, b, c, 0, 1));
}
// ------------------- Non-central F Distribution
// [[Rcpp::export]]
NumericVector runit_dnf( double x, double a, double b, double c ){
return NumericVector::create(R::dnf(x, a, b, c, 0), R::dnf(x, a, b, c, 1));
}
// [[Rcpp::export]]
NumericVector runit_pnf( double x, double a, double b, double c ){
return NumericVector::create(R::pnf(x, a, b, c, 1, 0), R::pnf(log(x), a, b, c, 1, 1),
R::pnf(x, a, b, c, 0, 0), R::pnf(log(x), a, b, c, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qnf( double x, double a, double b, double c ){
return NumericVector::create(R::qnf(x, a, b, c, 1, 0), R::qnf(log(x), a, b, c, 1, 1),
R::qnf(x, a, b, c, 0, 0), R::qnf(log(x), a, b, c, 0, 1));
}
// ------------------- Non-central Student t Distribution
// [[Rcpp::export]]
NumericVector runit_dnt( double x, double a, double b ){
return NumericVector::create(R::dnt(x, a, b, 0), R::dnt(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_pnt( double x, double a, double b ){
return NumericVector::create(R::pnt(x, a, b, 1, 0), R::pnt(log(x), a, b, 1, 1),
R::pnt(x, a, b, 0, 0), R::pnt(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qnt( double x, double a, double b ){
return NumericVector::create(R::qnt(x, a, b, 1, 0), R::qnt(log(x), a, b, 1, 1),
R::qnt(x, a, b, 0, 0), R::qnt(log(x), a, b, 0, 1));
}
// ------------------- Wilcoxon Rank Sum Statistic Distribution
// [[Rcpp::export]]
NumericVector runit_dwilcox( double x, double a, double b ){
return NumericVector::create(R::dwilcox(x, a, b, 0), R::dwilcox(x, a, b, 1));
}
// [[Rcpp::export]]
NumericVector runit_pwilcox( double x, double a, double b ){
return NumericVector::create(R::pwilcox(x, a, b, 1, 0), R::pwilcox(log(x), a, b, 1, 1),
R::pwilcox(x, a, b, 0, 0), R::pwilcox(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_qwilcox( double x, double a, double b ){
return NumericVector::create(R::qwilcox(x, a, b, 1, 0), R::qwilcox(log(x), a, b, 1, 1),
R::qwilcox(x, a, b, 0, 0), R::qwilcox(log(x), a, b, 0, 1));
}
// [[Rcpp::export]]
NumericVector runit_rwilcox(double a, double b) {
NumericVector o(5);
for (int i = 0; i < o.size(); i++) {
o[i] = R::rwilcox(a, b);
}
return o;
}
// [[Rcpp::export]]
NumericVector runit_rwilcox_sugar(double a, double b) {
return Rcpp::rwilcox(5, a, b);
}