Skip to main content

dynamic_update_slice

Function dynamic_update_slice 

Source
pub fn dynamic_update_slice(
    operand: &Tensor,
    update: &Tensor,
    starts: &Tensor,
) -> Result<Tensor>
Expand description

Return operand with update written at dynamic starts.

Starts are clamped so the whole update window fits inside the operand, matching dynamic_slice behavior.

ยงExamples

use tenferro_cpu as cpu;
use tenferro_tensor::{Tensor, TypedTensor};

let operand = Tensor::F64(TypedTensor::from_vec_col_major(vec![5], vec![0.0; 5])?);
let update = Tensor::F64(TypedTensor::from_vec_col_major(vec![2], vec![3.0, 4.0])?);
let starts = Tensor::I64(TypedTensor::from_vec_col_major(vec![1], vec![4])?);

let out = cpu::dynamic_update_slice(&operand, &update, &starts).unwrap();
assert_eq!(out.as_slice::<f64>().unwrap(), &[0.0, 0.0, 0.0, 3.0, 4.0]);