use obrah::data;
use obrah::kernel;
use obrah::runtime;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut input = String::new();
println!("Enter number to add one to: ");
std::io::stdin()
.read_line(&mut input)
.expect("Failed reading input");
let trimmed = input.trim();
let floaty = match trimmed.parse::<f32>() {
Ok(val) => val,
Err(_) => panic!("Please enter a valid float."),
};
let mut env = runtime::Env::new(0, 0)?; env.use_kernel("examples/add_one_kernel.cl")?
.program()?
.make_kernel("add_one")?;
let mut b = vec![0.0f32];
let mut bbuf = data::Buffer::new(&mut env, &mut b);
bbuf.to(&mut env);
let a = floaty;
kernel::setarg_scalar(&env, &a, 0);
kernel::setarg(&env, &bbuf, 1);
kernel::run_kernel(&mut env, 1, 1);
bbuf.from(&mut b, &mut env);
println!("Result: {:?}", b[0]);
Ok(())
}