# Generated by extendr — do not edit by hand.
#
# These thin .Call stubs mirror every Rust function exported via #[extendr].
# The symbol names (wrap__r_*) are produced by the extendr macro in lib.rs.
# Normally auto-generated by rextendr::document(); included manually so the
# package installs without needing rextendr at build time.

r_random <- function(rows, cols, seed = NULL) {
  .Call(wrap__r_random, rows, cols, seed)
}

r_random_element <- function(rows, cols, n = 50000, seed = NULL) {
  .Call(wrap__r_random_element, rows, cols, n, seed)
}

r_planar_gradient <- function(rows, cols, direction = NULL, seed = NULL) {
  .Call(wrap__r_planar_gradient, rows, cols, direction, seed)
}

r_edge_gradient <- function(rows, cols, direction = NULL, seed = NULL) {
  .Call(wrap__r_edge_gradient, rows, cols, direction, seed)
}

r_distance_gradient <- function(rows, cols, seed = NULL) {
  .Call(wrap__r_distance_gradient, rows, cols, seed)
}

r_wave_gradient <- function(rows, cols, period = 2.5, direction = NULL, seed = NULL) {
  .Call(wrap__r_wave_gradient, rows, cols, period, direction, seed)
}

r_midpoint_displacement <- function(rows, cols, h = 1.0, seed = NULL) {
  .Call(wrap__r_midpoint_displacement, rows, cols, h, seed)
}

r_hill_grow <- function(rows, cols, n = 10000L, runaway = TRUE,
                        kernel = NULL, only_grow = FALSE, seed = NULL) {
  .Call(wrap__r_hill_grow, rows, cols, n, runaway, kernel, only_grow, seed)
}

r_perlin_noise <- function(rows, cols, scale_factor = 4.0, seed = NULL) {
  .Call(wrap__r_perlin_noise, rows, cols, scale_factor, seed)
}

r_fbm_noise <- function(rows, cols, scale_factor = 4.0, octaves = 6L,
                        persistence = 0.5, lacunarity = 2.0, seed = NULL) {
  .Call(wrap__r_fbm_noise, rows, cols, scale_factor, octaves,
        persistence, lacunarity, seed)
}

r_ridged_noise <- function(rows, cols, scale_factor = 4.0, octaves = 6L,
                           persistence = 0.5, lacunarity = 2.0, seed = NULL) {
  .Call(wrap__r_ridged_noise, rows, cols, scale_factor, octaves,
        persistence, lacunarity, seed)
}

r_billow_noise <- function(rows, cols, scale_factor = 4.0, octaves = 6L,
                           persistence = 0.5, lacunarity = 2.0, seed = NULL) {
  .Call(wrap__r_billow_noise, rows, cols, scale_factor, octaves,
        persistence, lacunarity, seed)
}

r_worley_noise <- function(rows, cols, scale_factor = 4.0, seed = NULL) {
  .Call(wrap__r_worley_noise, rows, cols, scale_factor, seed)
}

r_gaussian_field <- function(rows, cols, sigma = 10.0, seed = NULL) {
  .Call(wrap__r_gaussian_field, rows, cols, sigma, seed)
}

r_random_cluster <- function(rows, cols, n = 200L, seed = NULL) {
  .Call(wrap__r_random_cluster, rows, cols, n, seed)
}

r_hybrid_noise <- function(rows, cols, scale_factor = 4.0, octaves = 6L,
                           persistence = 0.5, lacunarity = 2.0, seed = NULL) {
  .Call(wrap__r_hybrid_noise, rows, cols, scale_factor, octaves,
        persistence, lacunarity, seed)
}

r_value_noise <- function(rows, cols, scale_factor = 4.0, seed = NULL) {
  .Call(wrap__r_value_noise, rows, cols, scale_factor, seed)
}

r_turbulence <- function(rows, cols, scale_factor = 4.0, octaves = 6L,
                         persistence = 0.5, lacunarity = 2.0, seed = NULL) {
  .Call(wrap__r_turbulence, rows, cols, scale_factor, octaves,
        persistence, lacunarity, seed)
}

r_domain_warp <- function(rows, cols, scale_factor = 4.0, warp_strength = 1.0, seed = NULL) {
  .Call(wrap__r_domain_warp, rows, cols, scale_factor, warp_strength, seed)
}

r_mosaic <- function(rows, cols, n = 200L, seed = NULL) {
  .Call(wrap__r_mosaic, rows, cols, n, seed)
}

r_rectangular_cluster <- function(rows, cols, n = 200L, seed = NULL) {
  .Call(wrap__r_rectangular_cluster, rows, cols, n, seed)
}

r_percolation <- function(rows, cols, p = 0.5, seed = NULL) {
  .Call(wrap__r_percolation, rows, cols, p, seed)
}

r_binary_space_partitioning <- function(rows, cols, n = 100L, seed = NULL) {
  .Call(wrap__r_binary_space_partitioning, rows, cols, n, seed)
}

r_cellular_automaton <- function(rows, cols, p = 0.45, iterations = 5L,
                                  birth_threshold = 5L, survival_threshold = 4L,
                                  seed = NULL) {
  .Call(wrap__r_cellular_automaton, rows, cols, p, iterations,
        birth_threshold, survival_threshold, seed)
}

r_neighbourhood_clustering <- function(rows, cols, k = 5L, iterations = 10L, seed = NULL) {
  .Call(wrap__r_neighbourhood_clustering, rows, cols, k, iterations, seed)
}

r_spectral_synthesis <- function(rows, cols, beta = 2.0, seed = NULL) {
  .Call(wrap__r_spectral_synthesis, rows, cols, beta, seed)
}

r_diffusion_limited_aggregation <- function(rows, cols, n = 2000L, seed = NULL) {
  .Call(wrap__r_diffusion_limited_aggregation, rows, cols, n, seed)
}

r_reaction_diffusion <- function(rows, cols, iterations = 1000L, feed = 0.055,
                                  kill = 0.062, seed = NULL) {
  .Call(wrap__r_reaction_diffusion, rows, cols, iterations, feed, kill, seed)
}

r_eden_growth <- function(rows, cols, n = 2000L, seed = NULL) {
  .Call(wrap__r_eden_growth, rows, cols, n, seed)
}

r_fractal_brownian_surface <- function(rows, cols, h = 0.5, seed = NULL) {
  .Call(wrap__r_fractal_brownian_surface, rows, cols, h, seed)
}

r_landscape_gradient <- function(rows, cols, direction = NULL, aspect = 1.0, seed = NULL) {
  .Call(wrap__r_landscape_gradient, rows, cols, direction, aspect, seed)
}

r_simplex_noise <- function(rows, cols, scale = 4.0, seed = NULL) {
  .Call(wrap__r_simplex_noise, rows, cols, scale, seed)
}

r_invasion_percolation <- function(rows, cols, n = 2000L, seed = NULL) {
  .Call(wrap__r_invasion_percolation, rows, cols, n, seed)
}

r_gaussian_blobs <- function(rows, cols, n = 50L, sigma = 5.0, seed = NULL) {
  .Call(wrap__r_gaussian_blobs, rows, cols, n, sigma, seed)
}

r_ising_model <- function(rows, cols, beta = 0.4, iterations = 1000L, seed = NULL) {
  .Call(wrap__r_ising_model, rows, cols, beta, iterations, seed)
}

r_voronoi_distance <- function(rows, cols, n = 50L, seed = NULL) {
  .Call(wrap__r_voronoi_distance, rows, cols, n, seed)
}

r_sine_composite <- function(rows, cols, waves = 8L, seed = NULL) {
  .Call(wrap__r_sine_composite, rows, cols, waves, seed)
}

r_curl_noise <- function(rows, cols, scale = 4.0, seed = NULL) {
  .Call(wrap__r_curl_noise, rows, cols, scale, seed)
}

r_hydraulic_erosion <- function(rows, cols, n = 500L, seed = NULL) {
  .Call(wrap__r_hydraulic_erosion, rows, cols, n, seed)
}

r_levy_flight <- function(rows, cols, n = 1000L, seed = NULL) {
  .Call(wrap__r_levy_flight, rows, cols, n, seed)
}

r_poisson_disk <- function(rows, cols, min_dist = 5.0, seed = NULL) {
  .Call(wrap__r_poisson_disk, rows, cols, min_dist, seed)
}

r_classify <- function(m, n) {
  .Call(wrap__r_classify, m, n)
}

r_threshold <- function(m, t) {
  .Call(wrap__r_threshold, m, t)
}
