pub trait ArrayBroadcast<T: ArrayElement>where
    Self: Sized + Clone,{
    // Required methods
    fn broadcast(
        &self,
        other: &Array<T>
    ) -> Result<Array<Tuple2<T, T>>, ArrayError>;
    fn broadcast_to(&self, shape: Vec<usize>) -> Result<Array<T>, ArrayError>;
    fn broadcast_arrays(
        arrays: Vec<Array<T>>
    ) -> Result<Vec<Array<T>>, ArrayError>;
}
Expand description

ArrayTrait - Array Broadcast functions

Required Methods§

source

fn broadcast(&self, other: &Array<T>) -> Result<Array<Tuple2<T, T>>, ArrayError>

Broadcast an array to a new shape

Arguments
  • other - other array for broadcasting
Examples
use arr_rs::prelude::*;

let expected = Array::new(vec![
    (1, 4), (1, 5), (1, 6),
    (2, 4), (2, 5), (2, 6),
    (3, 4), (3, 5), (3, 6)
].into_iter().map(Tuple2::from_tuple).collect(), vec![3, 3]).unwrap();

let arr_1 = array!(i32, [[1], [2], [3]]).unwrap();
let arr_2 = array!(i32, [[4, 5, 6]]).unwrap();

let broadcast = arr_1.broadcast(&arr_2).unwrap();
assert_eq!(expected, broadcast);
source

fn broadcast_to(&self, shape: Vec<usize>) -> Result<Array<T>, ArrayError>

Broadcast an array to a new shape

Arguments
  • other - other array for broadcasting
Examples
use arr_rs::prelude::*;

let expected = Array::new(vec![1, 1, 1, 2, 2, 2, 3, 3, 3], vec![3, 3]).unwrap();
let arr_1 = array!(i32, [[1], [2], [3]]).unwrap();

let broadcast = arr_1.broadcast_to(vec![3, 3]).unwrap();
assert_eq!(expected, broadcast);
source

fn broadcast_arrays(arrays: Vec<Array<T>>) -> Result<Vec<Array<T>>, ArrayError>

Broadcast a list of arrays to a common shape

Arguments
  • arrays - list of arrays for broadcasting
Examples
use arr_rs::prelude::*;

let expected = vec![
    Array::new(vec![1, 1, 1, 2, 2, 2, 3, 3, 3], vec![3, 3]).unwrap(),
    Array::new(vec![4, 5, 6, 4, 5, 6, 4, 5, 6], vec![3, 3]).unwrap(),
];
let arr_1 = array!(i32, [[1], [2], [3]]).unwrap();
let arr_2 = array!(i32, [4, 5, 6]).unwrap();

let broadcast = Array::broadcast_arrays(vec![arr_1 ,arr_2]).unwrap();
assert_eq!(expected, broadcast);

Implementations on Foreign Types§

source§

impl<T: ArrayElement> ArrayBroadcast<T> for Result<Array<T>, ArrayError>

Implementors§