// Generated by using Rcpp::compileAttributes() -> do not edit by hand
// Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

#include <RcppArmadillo.h>
#include <Rcpp.h>

using namespace Rcpp;

#ifdef RCPP_USE_GLOBAL_ROSTREAM
Rcpp::Rostream<true>&  Rcpp::Rcout = Rcpp::Rcpp_cout_get();
Rcpp::Rostream<false>& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get();
#endif

// cpp_ant
arma::mat cpp_ant(arma::mat& canvas, const arma::mat& directions, const int& iterations, const int& resolution);
RcppExport SEXP _aRtsy_cpp_ant(SEXP canvasSEXP, SEXP directionsSEXP, SEXP iterationsSEXP, SEXP resolutionSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type canvas(canvasSEXP);
    Rcpp::traits::input_parameter< const arma::mat& >::type directions(directionsSEXP);
    Rcpp::traits::input_parameter< const int& >::type iterations(iterationsSEXP);
    Rcpp::traits::input_parameter< const int& >::type resolution(resolutionSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_ant(canvas, directions, iterations, resolution));
    return rcpp_result_gen;
END_RCPP
}
// cpp_chladni
Rcpp::NumericVector cpp_chladni(const Rcpp::NumericVector& x, const Rcpp::NumericVector& y, const Rcpp::NumericVector& waves);
RcppExport SEXP _aRtsy_cpp_chladni(SEXP xSEXP, SEXP ySEXP, SEXP wavesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y(ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type waves(wavesSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_chladni(x, y, waves));
    return rcpp_result_gen;
END_RCPP
}
// cpp_circlemap
arma::mat cpp_circlemap(arma::mat& canvas, const double& left, const double& right, const double& bottom, const double& top, const int& iters);
RcppExport SEXP _aRtsy_cpp_circlemap(SEXP canvasSEXP, SEXP leftSEXP, SEXP rightSEXP, SEXP bottomSEXP, SEXP topSEXP, SEXP itersSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type canvas(canvasSEXP);
    Rcpp::traits::input_parameter< const double& >::type left(leftSEXP);
    Rcpp::traits::input_parameter< const double& >::type right(rightSEXP);
    Rcpp::traits::input_parameter< const double& >::type bottom(bottomSEXP);
    Rcpp::traits::input_parameter< const double& >::type top(topSEXP);
    Rcpp::traits::input_parameter< const int& >::type iters(itersSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_circlemap(canvas, left, right, bottom, top, iters));
    return rcpp_result_gen;
END_RCPP
}
// cpp_collatz_sequence
Rcpp::IntegerVector cpp_collatz_sequence(int& x);
RcppExport SEXP _aRtsy_cpp_collatz_sequence(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int& >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_collatz_sequence(x));
    return rcpp_result_gen;
END_RCPP
}
// cpp_collatz
arma::mat cpp_collatz(arma::mat& empty, const Rcpp::IntegerVector& series, const double& even, const double& odd);
RcppExport SEXP _aRtsy_cpp_collatz(SEXP emptySEXP, SEXP seriesSEXP, SEXP evenSEXP, SEXP oddSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type empty(emptySEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type series(seriesSEXP);
    Rcpp::traits::input_parameter< const double& >::type even(evenSEXP);
    Rcpp::traits::input_parameter< const double& >::type odd(oddSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_collatz(empty, series, even, odd));
    return rcpp_result_gen;
END_RCPP
}
// cpp_flame
arma::cube cpp_flame(arma::cube& canvas, const int& iterations, const int& resolution, const int& edge, const bool& blend, const bool& weighted, const bool& post, const bool& final, const bool& extra, const arma::mat& colors, const Rcpp::DoubleVector& functions, const Rcpp::DoubleVector& funcWeights, const arma::mat& funcPars, const Rcpp::DoubleVector& variations, const arma::mat& varWeights, const Rcpp::DoubleVector& varParams, const arma::mat& postPars, const Rcpp::DoubleVector& finalPars, const Rcpp::DoubleVector& extraPars, const int& bsym);
RcppExport SEXP _aRtsy_cpp_flame(SEXP canvasSEXP, SEXP iterationsSEXP, SEXP resolutionSEXP, SEXP edgeSEXP, SEXP blendSEXP, SEXP weightedSEXP, SEXP postSEXP, SEXP finalSEXP, SEXP extraSEXP, SEXP colorsSEXP, SEXP functionsSEXP, SEXP funcWeightsSEXP, SEXP funcParsSEXP, SEXP variationsSEXP, SEXP varWeightsSEXP, SEXP varParamsSEXP, SEXP postParsSEXP, SEXP finalParsSEXP, SEXP extraParsSEXP, SEXP bsymSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::cube& >::type canvas(canvasSEXP);
    Rcpp::traits::input_parameter< const int& >::type iterations(iterationsSEXP);
    Rcpp::traits::input_parameter< const int& >::type resolution(resolutionSEXP);
    Rcpp::traits::input_parameter< const int& >::type edge(edgeSEXP);
    Rcpp::traits::input_parameter< const bool& >::type blend(blendSEXP);
    Rcpp::traits::input_parameter< const bool& >::type weighted(weightedSEXP);
    Rcpp::traits::input_parameter< const bool& >::type post(postSEXP);
    Rcpp::traits::input_parameter< const bool& >::type final(finalSEXP);
    Rcpp::traits::input_parameter< const bool& >::type extra(extraSEXP);
    Rcpp::traits::input_parameter< const arma::mat& >::type colors(colorsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type functions(functionsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type funcWeights(funcWeightsSEXP);
    Rcpp::traits::input_parameter< const arma::mat& >::type funcPars(funcParsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type variations(variationsSEXP);
    Rcpp::traits::input_parameter< const arma::mat& >::type varWeights(varWeightsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type varParams(varParamsSEXP);
    Rcpp::traits::input_parameter< const arma::mat& >::type postPars(postParsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type finalPars(finalParsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type extraPars(extraParsSEXP);
    Rcpp::traits::input_parameter< const int& >::type bsym(bsymSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_flame(canvas, iterations, resolution, edge, blend, weighted, post, final, extra, colors, functions, funcWeights, funcPars, variations, varWeights, varParams, postPars, finalPars, extraPars, bsym));
    return rcpp_result_gen;
END_RCPP
}
// cpp_flow
Rcpp::DataFrame cpp_flow(arma::mat& canvas, const arma::mat& angles, const int& lines, const int& iters, const int& ncolors, const int& left, const int& right, const int& top, const int& bottom, const double& stepmax);
RcppExport SEXP _aRtsy_cpp_flow(SEXP canvasSEXP, SEXP anglesSEXP, SEXP linesSEXP, SEXP itersSEXP, SEXP ncolorsSEXP, SEXP leftSEXP, SEXP rightSEXP, SEXP topSEXP, SEXP bottomSEXP, SEXP stepmaxSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type canvas(canvasSEXP);
    Rcpp::traits::input_parameter< const arma::mat& >::type angles(anglesSEXP);
    Rcpp::traits::input_parameter< const int& >::type lines(linesSEXP);
    Rcpp::traits::input_parameter< const int& >::type iters(itersSEXP);
    Rcpp::traits::input_parameter< const int& >::type ncolors(ncolorsSEXP);
    Rcpp::traits::input_parameter< const int& >::type left(leftSEXP);
    Rcpp::traits::input_parameter< const int& >::type right(rightSEXP);
    Rcpp::traits::input_parameter< const int& >::type top(topSEXP);
    Rcpp::traits::input_parameter< const int& >::type bottom(bottomSEXP);
    Rcpp::traits::input_parameter< const double& >::type stepmax(stepmaxSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_flow(canvas, angles, lines, iters, ncolors, left, right, top, bottom, stepmax));
    return rcpp_result_gen;
END_RCPP
}
// cpp_maze
Rcpp::DataFrame cpp_maze(arma::mat& X, double x, double y);
RcppExport SEXP _aRtsy_cpp_maze(SEXP XSEXP, SEXP xSEXP, SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_maze(X, x, y));
    return rcpp_result_gen;
END_RCPP
}
// cpp_mesh
Rcpp::DataFrame cpp_mesh(arma::mat& canvas, const Rcpp::DoubleVector& points, const Rcpp::DoubleVector& centers, const int& iterations, const int& start, Rcpp::IntegerVector& order, Rcpp::DoubleVector& radii, Rcpp::DoubleVector& increase);
RcppExport SEXP _aRtsy_cpp_mesh(SEXP canvasSEXP, SEXP pointsSEXP, SEXP centersSEXP, SEXP iterationsSEXP, SEXP startSEXP, SEXP orderSEXP, SEXP radiiSEXP, SEXP increaseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type canvas(canvasSEXP);
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type points(pointsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type centers(centersSEXP);
    Rcpp::traits::input_parameter< const int& >::type iterations(iterationsSEXP);
    Rcpp::traits::input_parameter< const int& >::type start(startSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type order(orderSEXP);
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type radii(radiiSEXP);
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type increase(increaseSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_mesh(canvas, points, centers, iterations, start, order, radii, increase));
    return rcpp_result_gen;
END_RCPP
}
// cpp_petri_closest
Rcpp::IntegerVector cpp_petri_closest(const Rcpp::DoubleVector& attractor_x, const Rcpp::DoubleVector& attractor_y, const Rcpp::DoubleVector& nodes_x, const Rcpp::DoubleVector& nodes_y, const double& attraction_distance);
RcppExport SEXP _aRtsy_cpp_petri_closest(SEXP attractor_xSEXP, SEXP attractor_ySEXP, SEXP nodes_xSEXP, SEXP nodes_ySEXP, SEXP attraction_distanceSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type attractor_x(attractor_xSEXP);
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type attractor_y(attractor_ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type nodes_x(nodes_xSEXP);
    Rcpp::traits::input_parameter< const Rcpp::DoubleVector& >::type nodes_y(nodes_ySEXP);
    Rcpp::traits::input_parameter< const double& >::type attraction_distance(attraction_distanceSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_petri_closest(attractor_x, attractor_y, nodes_x, nodes_y, attraction_distance));
    return rcpp_result_gen;
END_RCPP
}
// cpp_petri_kill
Rcpp::DataFrame cpp_petri_kill(Rcpp::DoubleVector& attractor_x, Rcpp::DoubleVector& attractor_y, Rcpp::DoubleVector& nodes_x, Rcpp::DoubleVector& nodes_y, const double& kill_distance);
RcppExport SEXP _aRtsy_cpp_petri_kill(SEXP attractor_xSEXP, SEXP attractor_ySEXP, SEXP nodes_xSEXP, SEXP nodes_ySEXP, SEXP kill_distanceSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type attractor_x(attractor_xSEXP);
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type attractor_y(attractor_ySEXP);
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type nodes_x(nodes_xSEXP);
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type nodes_y(nodes_ySEXP);
    Rcpp::traits::input_parameter< const double& >::type kill_distance(kill_distanceSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_petri_kill(attractor_x, attractor_y, nodes_x, nodes_y, kill_distance));
    return rcpp_result_gen;
END_RCPP
}
// cpp_draw_circle
Rcpp::DataFrame cpp_draw_circle(const double& center_x, const double& center_y, const double& diameter, const int& n);
RcppExport SEXP _aRtsy_cpp_draw_circle(SEXP center_xSEXP, SEXP center_ySEXP, SEXP diameterSEXP, SEXP nSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const double& >::type center_x(center_xSEXP);
    Rcpp::traits::input_parameter< const double& >::type center_y(center_ySEXP);
    Rcpp::traits::input_parameter< const double& >::type diameter(diameterSEXP);
    Rcpp::traits::input_parameter< const int& >::type n(nSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_draw_circle(center_x, center_y, diameter, n));
    return rcpp_result_gen;
END_RCPP
}
// cpp_petri_directions
Rcpp::DataFrame cpp_petri_directions(Rcpp::DoubleVector& attractor_x, Rcpp::DoubleVector& attractor_y, Rcpp::DoubleVector& nodes_x, Rcpp::DoubleVector& nodes_y, Rcpp::IntegerVector& closest_nodes);
RcppExport SEXP _aRtsy_cpp_petri_directions(SEXP attractor_xSEXP, SEXP attractor_ySEXP, SEXP nodes_xSEXP, SEXP nodes_ySEXP, SEXP closest_nodesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type attractor_x(attractor_xSEXP);
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type attractor_y(attractor_ySEXP);
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type nodes_x(nodes_xSEXP);
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type nodes_y(nodes_ySEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type closest_nodes(closest_nodesSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_petri_directions(attractor_x, attractor_y, nodes_x, nodes_y, closest_nodes));
    return rcpp_result_gen;
END_RCPP
}
// cpp_phyllotaxis
Rcpp::DataFrame cpp_phyllotaxis(const int& iter, const double& a, const double& p);
RcppExport SEXP _aRtsy_cpp_phyllotaxis(SEXP iterSEXP, SEXP aSEXP, SEXP pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const int& >::type iter(iterSEXP);
    Rcpp::traits::input_parameter< const double& >::type a(aSEXP);
    Rcpp::traits::input_parameter< const double& >::type p(pSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_phyllotaxis(iter, a, p));
    return rcpp_result_gen;
END_RCPP
}
// cpp_planet
arma::mat cpp_planet(arma::mat& canvas, const int& resolution, const int& radius, const int& xcenter, const int& ycenter, const int& threshold, const int& iterations, const int& ncolors, const int& colorsused, const double& starprob, const double& fade, const bool& lightright);
RcppExport SEXP _aRtsy_cpp_planet(SEXP canvasSEXP, SEXP resolutionSEXP, SEXP radiusSEXP, SEXP xcenterSEXP, SEXP ycenterSEXP, SEXP thresholdSEXP, SEXP iterationsSEXP, SEXP ncolorsSEXP, SEXP colorsusedSEXP, SEXP starprobSEXP, SEXP fadeSEXP, SEXP lightrightSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type canvas(canvasSEXP);
    Rcpp::traits::input_parameter< const int& >::type resolution(resolutionSEXP);
    Rcpp::traits::input_parameter< const int& >::type radius(radiusSEXP);
    Rcpp::traits::input_parameter< const int& >::type xcenter(xcenterSEXP);
    Rcpp::traits::input_parameter< const int& >::type ycenter(ycenterSEXP);
    Rcpp::traits::input_parameter< const int& >::type threshold(thresholdSEXP);
    Rcpp::traits::input_parameter< const int& >::type iterations(iterationsSEXP);
    Rcpp::traits::input_parameter< const int& >::type ncolors(ncolorsSEXP);
    Rcpp::traits::input_parameter< const int& >::type colorsused(colorsusedSEXP);
    Rcpp::traits::input_parameter< const double& >::type starprob(starprobSEXP);
    Rcpp::traits::input_parameter< const double& >::type fade(fadeSEXP);
    Rcpp::traits::input_parameter< const bool& >::type lightright(lightrightSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_planet(canvas, resolution, radius, xcenter, ycenter, threshold, iterations, ncolors, colorsused, starprob, fade, lightright));
    return rcpp_result_gen;
END_RCPP
}
// cpp_polylines
arma::mat cpp_polylines(arma::mat canvas, const double& ratio, const int& iters, const int& rows, const int& cols);
RcppExport SEXP _aRtsy_cpp_polylines(SEXP canvasSEXP, SEXP ratioSEXP, SEXP itersSEXP, SEXP rowsSEXP, SEXP colsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type canvas(canvasSEXP);
    Rcpp::traits::input_parameter< const double& >::type ratio(ratioSEXP);
    Rcpp::traits::input_parameter< const int& >::type iters(itersSEXP);
    Rcpp::traits::input_parameter< const int& >::type rows(rowsSEXP);
    Rcpp::traits::input_parameter< const int& >::type cols(colsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_polylines(canvas, ratio, iters, rows, cols));
    return rcpp_result_gen;
END_RCPP
}
// cpp_recaman
Rcpp::IntegerVector cpp_recaman(const int& n, const int& start, const int& increment);
RcppExport SEXP _aRtsy_cpp_recaman(SEXP nSEXP, SEXP startSEXP, SEXP incrementSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const int& >::type n(nSEXP);
    Rcpp::traits::input_parameter< const int& >::type start(startSEXP);
    Rcpp::traits::input_parameter< const int& >::type increment(incrementSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_recaman(n, start, increment));
    return rcpp_result_gen;
END_RCPP
}
// cpp_smoke
arma::cube cpp_smoke(arma::cube& canvas, arma::umat coords, const arma::umat& color_mat, const int& init, const int& algorithm, const int& shape, const bool& all_colors);
RcppExport SEXP _aRtsy_cpp_smoke(SEXP canvasSEXP, SEXP coordsSEXP, SEXP color_matSEXP, SEXP initSEXP, SEXP algorithmSEXP, SEXP shapeSEXP, SEXP all_colorsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::cube& >::type canvas(canvasSEXP);
    Rcpp::traits::input_parameter< arma::umat >::type coords(coordsSEXP);
    Rcpp::traits::input_parameter< const arma::umat& >::type color_mat(color_matSEXP);
    Rcpp::traits::input_parameter< const int& >::type init(initSEXP);
    Rcpp::traits::input_parameter< const int& >::type algorithm(algorithmSEXP);
    Rcpp::traits::input_parameter< const int& >::type shape(shapeSEXP);
    Rcpp::traits::input_parameter< const bool& >::type all_colors(all_colorsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_smoke(canvas, coords, color_mat, init, algorithm, shape, all_colors));
    return rcpp_result_gen;
END_RCPP
}
// cpp_splits
Rcpp::DataFrame cpp_splits(Rcpp::NumericVector& x, Rcpp::NumericVector& xend, Rcpp::NumericVector& y, Rcpp::NumericVector& yend, Rcpp::NumericVector& col, const double& sda, const int& ncols, const int& iterations);
RcppExport SEXP _aRtsy_cpp_splits(SEXP xSEXP, SEXP xendSEXP, SEXP ySEXP, SEXP yendSEXP, SEXP colSEXP, SEXP sdaSEXP, SEXP ncolsSEXP, SEXP iterationsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector& >::type x(xSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector& >::type xend(xendSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector& >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector& >::type yend(yendSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector& >::type col(colSEXP);
    Rcpp::traits::input_parameter< const double& >::type sda(sdaSEXP);
    Rcpp::traits::input_parameter< const int& >::type ncols(ncolsSEXP);
    Rcpp::traits::input_parameter< const int& >::type iterations(iterationsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_splits(x, xend, y, yend, col, sda, ncols, iterations));
    return rcpp_result_gen;
END_RCPP
}
// cpp_squares
arma::mat cpp_squares(arma::mat& X, const Rcpp::DataFrame& neighbors, const int& s, const int& cuts, const double& ratio);
RcppExport SEXP _aRtsy_cpp_squares(SEXP XSEXP, SEXP neighborsSEXP, SEXP sSEXP, SEXP cutsSEXP, SEXP ratioSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type X(XSEXP);
    Rcpp::traits::input_parameter< const Rcpp::DataFrame& >::type neighbors(neighborsSEXP);
    Rcpp::traits::input_parameter< const int& >::type s(sSEXP);
    Rcpp::traits::input_parameter< const int& >::type cuts(cutsSEXP);
    Rcpp::traits::input_parameter< const double& >::type ratio(ratioSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_squares(X, neighbors, s, cuts, ratio));
    return rcpp_result_gen;
END_RCPP
}
// cpp_strokes
arma::mat cpp_strokes(arma::mat& canvas, arma::mat& neighbors, const int& s, const double& p);
RcppExport SEXP _aRtsy_cpp_strokes(SEXP canvasSEXP, SEXP neighborsSEXP, SEXP sSEXP, SEXP pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type canvas(canvasSEXP);
    Rcpp::traits::input_parameter< arma::mat& >::type neighbors(neighborsSEXP);
    Rcpp::traits::input_parameter< const int& >::type s(sSEXP);
    Rcpp::traits::input_parameter< const double& >::type p(pSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_strokes(canvas, neighbors, s, p));
    return rcpp_result_gen;
END_RCPP
}
// cpp_swirls
arma::mat cpp_swirls(const arma::mat& heightMap, const int& iterations, const int& n, const int& resolution, const int& ncols, const double& lwd, const double& freq);
RcppExport SEXP _aRtsy_cpp_swirls(SEXP heightMapSEXP, SEXP iterationsSEXP, SEXP nSEXP, SEXP resolutionSEXP, SEXP ncolsSEXP, SEXP lwdSEXP, SEXP freqSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type heightMap(heightMapSEXP);
    Rcpp::traits::input_parameter< const int& >::type iterations(iterationsSEXP);
    Rcpp::traits::input_parameter< const int& >::type n(nSEXP);
    Rcpp::traits::input_parameter< const int& >::type resolution(resolutionSEXP);
    Rcpp::traits::input_parameter< const int& >::type ncols(ncolsSEXP);
    Rcpp::traits::input_parameter< const double& >::type lwd(lwdSEXP);
    Rcpp::traits::input_parameter< const double& >::type freq(freqSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_swirls(heightMap, iterations, n, resolution, ncols, lwd, freq));
    return rcpp_result_gen;
END_RCPP
}
// cpp_tiles
arma::cube cpp_tiles(arma::cube& canvas, const arma::mat& conv, const double& diffa, const double& diffb, const double& feedrate, const double& killrate, const int& iterations);
RcppExport SEXP _aRtsy_cpp_tiles(SEXP canvasSEXP, SEXP convSEXP, SEXP diffaSEXP, SEXP diffbSEXP, SEXP feedrateSEXP, SEXP killrateSEXP, SEXP iterationsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::cube& >::type canvas(canvasSEXP);
    Rcpp::traits::input_parameter< const arma::mat& >::type conv(convSEXP);
    Rcpp::traits::input_parameter< const double& >::type diffa(diffaSEXP);
    Rcpp::traits::input_parameter< const double& >::type diffb(diffbSEXP);
    Rcpp::traits::input_parameter< const double& >::type feedrate(feedrateSEXP);
    Rcpp::traits::input_parameter< const double& >::type killrate(killrateSEXP);
    Rcpp::traits::input_parameter< const int& >::type iterations(iterationsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_tiles(canvas, conv, diffa, diffb, feedrate, killrate, iterations));
    return rcpp_result_gen;
END_RCPP
}
// cpp_turmite
arma::mat cpp_turmite(arma::mat& canvas, const int& iters, int& row, int& col, const double& p);
RcppExport SEXP _aRtsy_cpp_turmite(SEXP canvasSEXP, SEXP itersSEXP, SEXP rowSEXP, SEXP colSEXP, SEXP pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat& >::type canvas(canvasSEXP);
    Rcpp::traits::input_parameter< const int& >::type iters(itersSEXP);
    Rcpp::traits::input_parameter< int& >::type row(rowSEXP);
    Rcpp::traits::input_parameter< int& >::type col(colSEXP);
    Rcpp::traits::input_parameter< const double& >::type p(pSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_turmite(canvas, iters, row, col, p));
    return rcpp_result_gen;
END_RCPP
}
// cpp_watercolors
Rcpp::DataFrame cpp_watercolors(Rcpp::DoubleVector& x, Rcpp::DoubleVector& y, Rcpp::DoubleVector& s, const int& maxdepth, const double& resolution);
RcppExport SEXP _aRtsy_cpp_watercolors(SEXP xSEXP, SEXP ySEXP, SEXP sSEXP, SEXP maxdepthSEXP, SEXP resolutionSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type x(xSEXP);
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::DoubleVector& >::type s(sSEXP);
    Rcpp::traits::input_parameter< const int& >::type maxdepth(maxdepthSEXP);
    Rcpp::traits::input_parameter< const double& >::type resolution(resolutionSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_watercolors(x, y, s, maxdepth, resolution));
    return rcpp_result_gen;
END_RCPP
}
// cpp_knn
arma::vec cpp_knn(const arma::vec& x, const arma::vec& y, const arma::vec& z, const arma::vec& newx, const arma::vec& newy, const int& k);
RcppExport SEXP _aRtsy_cpp_knn(SEXP xSEXP, SEXP ySEXP, SEXP zSEXP, SEXP newxSEXP, SEXP newySEXP, SEXP kSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::vec& >::type x(xSEXP);
    Rcpp::traits::input_parameter< const arma::vec& >::type y(ySEXP);
    Rcpp::traits::input_parameter< const arma::vec& >::type z(zSEXP);
    Rcpp::traits::input_parameter< const arma::vec& >::type newx(newxSEXP);
    Rcpp::traits::input_parameter< const arma::vec& >::type newy(newySEXP);
    Rcpp::traits::input_parameter< const int& >::type k(kSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_knn(x, y, z, newx, newy, k));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_aRtsy_cpp_ant", (DL_FUNC) &_aRtsy_cpp_ant, 4},
    {"_aRtsy_cpp_chladni", (DL_FUNC) &_aRtsy_cpp_chladni, 3},
    {"_aRtsy_cpp_circlemap", (DL_FUNC) &_aRtsy_cpp_circlemap, 6},
    {"_aRtsy_cpp_collatz_sequence", (DL_FUNC) &_aRtsy_cpp_collatz_sequence, 1},
    {"_aRtsy_cpp_collatz", (DL_FUNC) &_aRtsy_cpp_collatz, 4},
    {"_aRtsy_cpp_flame", (DL_FUNC) &_aRtsy_cpp_flame, 20},
    {"_aRtsy_cpp_flow", (DL_FUNC) &_aRtsy_cpp_flow, 10},
    {"_aRtsy_cpp_maze", (DL_FUNC) &_aRtsy_cpp_maze, 3},
    {"_aRtsy_cpp_mesh", (DL_FUNC) &_aRtsy_cpp_mesh, 8},
    {"_aRtsy_cpp_petri_closest", (DL_FUNC) &_aRtsy_cpp_petri_closest, 5},
    {"_aRtsy_cpp_petri_kill", (DL_FUNC) &_aRtsy_cpp_petri_kill, 5},
    {"_aRtsy_cpp_draw_circle", (DL_FUNC) &_aRtsy_cpp_draw_circle, 4},
    {"_aRtsy_cpp_petri_directions", (DL_FUNC) &_aRtsy_cpp_petri_directions, 5},
    {"_aRtsy_cpp_phyllotaxis", (DL_FUNC) &_aRtsy_cpp_phyllotaxis, 3},
    {"_aRtsy_cpp_planet", (DL_FUNC) &_aRtsy_cpp_planet, 12},
    {"_aRtsy_cpp_polylines", (DL_FUNC) &_aRtsy_cpp_polylines, 5},
    {"_aRtsy_cpp_recaman", (DL_FUNC) &_aRtsy_cpp_recaman, 3},
    {"_aRtsy_cpp_smoke", (DL_FUNC) &_aRtsy_cpp_smoke, 7},
    {"_aRtsy_cpp_splits", (DL_FUNC) &_aRtsy_cpp_splits, 8},
    {"_aRtsy_cpp_squares", (DL_FUNC) &_aRtsy_cpp_squares, 5},
    {"_aRtsy_cpp_strokes", (DL_FUNC) &_aRtsy_cpp_strokes, 4},
    {"_aRtsy_cpp_swirls", (DL_FUNC) &_aRtsy_cpp_swirls, 7},
    {"_aRtsy_cpp_tiles", (DL_FUNC) &_aRtsy_cpp_tiles, 7},
    {"_aRtsy_cpp_turmite", (DL_FUNC) &_aRtsy_cpp_turmite, 5},
    {"_aRtsy_cpp_watercolors", (DL_FUNC) &_aRtsy_cpp_watercolors, 5},
    {"_aRtsy_cpp_knn", (DL_FUNC) &_aRtsy_cpp_knn, 6},
    {NULL, NULL, 0}
};

RcppExport void R_init_aRtsy(DllInfo *dll) {
    R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
    R_useDynamicSymbols(dll, FALSE);
}
