#[crate::module(tile_rust_crate = true)]
pub mod creation {
use crate::core::*;
#[crate::entry()]
pub fn full<T: ElementType, const S: [i32; 1]>(value: T, tensor: &mut Tensor<T, S>) {
let value_tile: Tile<T, S> = value.broadcast(tensor.shape());
tensor.store(value_tile);
}
#[crate::entry()]
pub fn arange<T: ElementType, const S: [i32; 1]>(tensor: &mut Tensor<T, S>) {
let pid: (i32, i32, i32) = get_tile_block_id();
let pdim: (i32, i32, i32) = get_tile_block_id();
let offset = pid.0 * pdim.0;
let offset_tile = broadcast_scalar(offset, tensor.shape());
let range = iota::<i32, S>(tensor.shape());
let offset_range = offset_tile + range;
let offset_range: Tile<T, S> = convert_tile(offset_range);
tensor.store(offset_range);
}
}