pub struct DirectSumResult<T: TensorLike> {
pub tensor: T,
pub new_indices: Vec<T::Index>,
}Expand description
Result of direct sum operation.
Contains the resulting tensor and the new indices created for the summed dimensions (one new index per pair in the input).
§Examples
use tensor4all_core::{DynIndex, TensorDynLen, TensorLike, IndexLike};
let i = DynIndex::new_dyn(2);
let j = DynIndex::new_dyn(3);
let a = TensorDynLen::from_dense(vec![i.clone()], vec![1.0, 2.0]).unwrap();
let b = TensorDynLen::from_dense(vec![j.clone()], vec![3.0, 4.0, 5.0]).unwrap();
let result = a.direct_sum(&b, &[(i.clone(), j.clone())]).unwrap();
// New index has dimension = 2 + 3 = 5
assert_eq!(result.new_indices.len(), 1);
assert_eq!(result.new_indices[0].dim(), 5);
assert_eq!(result.tensor.to_vec::<f64>().unwrap(), vec![1.0, 2.0, 3.0, 4.0, 5.0]);Fields§
§tensor: TThe resulting tensor from direct sum.
new_indices: Vec<T::Index>New indices created for the summed dimensions (one per pair).
Trait Implementations§
Source§impl<T: Clone + TensorLike> Clone for DirectSumResult<T>
impl<T: Clone + TensorLike> Clone for DirectSumResult<T>
Source§fn clone(&self) -> DirectSumResult<T>
fn clone(&self) -> DirectSumResult<T>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<T> Freeze for DirectSumResult<T>where
T: Freeze,
impl<T> RefUnwindSafe for DirectSumResult<T>
impl<T> Send for DirectSumResult<T>
impl<T> Sync for DirectSumResult<T>
impl<T> Unpin for DirectSumResult<T>
impl<T> UnsafeUnpin for DirectSumResult<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for DirectSumResult<T>
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
Casts
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more