///|
pub fn sampled_maxwellian(
  config : VlasovConfig,
  density~ : Double,
  thermal_speed~ : Double,
) -> Array[Double] {
  let result = zeros(config.grid.cells * config.velocity_bins)
  for ix in 0.. Array[Double] {
  let result = zeros(config.grid.cells * config.velocity_bins)
  for ix in 0.. Double {
  let per_cell = config.velocity_bins
  if config.grid.cells == 0 || per_cell == 0 {
    0.0
  } else {
    let mut total = 0.0
    for ix in 0.. Double {
  let mut numerator = 0.0
  let mut denominator = 0.0
  for ix in 0.. Double {
  let mean_velocity = distribution_mean_velocity(config, distribution)
  let mut numerator = 0.0
  let mut denominator = 0.0
  for ix in 0..