Struct gad::graph::Value [−][src]
pub struct Value<D> { /* fields omitted */ }
A value tracked in a graph.
Implementations
impl<D> Value<D>
[src]
impl<D> Value<D>
[src]pub fn constant(data: D) -> Self
[src]
Create a constant valid in any graph-based algebra. This is safe because constants are not tracked in the graph.
pub fn data(&self) -> &D
[src]
The data of a computation node.
pub fn id(&self) -> Option<GradientId<D>>
[src]
The id of a computation node.
pub fn input(&self) -> Option<Id>
[src]
The internal, untyped id of a computation node (used to track dependencies).
Trait Implementations
impl<D, E, Dims> AnalyticAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + AnalyticAlgebra<D> + ArithAlgebra<D> + ConstArithAlgebra<D, i16> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]
impl<D, E, Dims> AnalyticAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + AnalyticAlgebra<D> + ArithAlgebra<D> + ConstArithAlgebra<D, i16> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]fn exp(&mut self, v: &Value<D>) -> Value<D>
[src]
fn log(&mut self, v: &Value<D>) -> Value<D>
[src]
fn log1p(&mut self, v: &Value<D>) -> Value<D>
[src]
fn sin(&mut self, v: &Value<D>) -> Value<D>
[src]
fn cos(&mut self, v: &Value<D>) -> Value<D>
[src]
fn tanh(&mut self, v: &Value<D>) -> Value<D>
[src]
fn sigmoid(&mut self, v: &Value<D>) -> Value<D>
[src]
fn reciprocal(&mut self, v: &Value<D>) -> Value<D>
[src]
fn sqrt(&mut self, v: &Value<D>) -> Value<D>
[src]
fn div(&mut self, v0: &Value<D>, v1: &Value<D>) -> Result<Value<D>>
[src]
fn pow(&mut self, v: &Value, p: &Value) -> Result<Value> where
Self: ArithAlgebra<Value>,
[src]
Self: ArithAlgebra<Value>,
impl<D, E, Dims> AnalyticAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + AnalyticAlgebra<D> + ArithAlgebra<D> + ConstArithAlgebra<D, i16> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]
impl<D, E, Dims> AnalyticAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + AnalyticAlgebra<D> + ArithAlgebra<D> + ConstArithAlgebra<D, i16> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]fn exp(&mut self, v: &Value<D>) -> Value<D>
[src]
fn log(&mut self, v: &Value<D>) -> Value<D>
[src]
fn log1p(&mut self, v: &Value<D>) -> Value<D>
[src]
fn sin(&mut self, v: &Value<D>) -> Value<D>
[src]
fn cos(&mut self, v: &Value<D>) -> Value<D>
[src]
fn tanh(&mut self, v: &Value<D>) -> Value<D>
[src]
fn sigmoid(&mut self, v: &Value<D>) -> Value<D>
[src]
fn reciprocal(&mut self, v: &Value<D>) -> Value<D>
[src]
fn sqrt(&mut self, v: &Value<D>) -> Value<D>
[src]
fn div(&mut self, v0: &Value<D>, v1: &Value<D>) -> Result<Value<D>>
[src]
fn pow(&mut self, v: &Value, p: &Value) -> Result<Value> where
Self: ArithAlgebra<Value>,
[src]
Self: ArithAlgebra<Value>,
impl<D, E, Dims> ArithAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + ArithAlgebra<D> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]
impl<D, E, Dims> ArithAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + ArithAlgebra<D> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]impl<D, E, Dims> ArithAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + ArithAlgebra<D> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]
impl<D, E, Dims> ArithAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + ArithAlgebra<D> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]impl<D, E, T, Dims> ArrayAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CoreAlgebra<T, Value = T> + LinkedAlgebra<Value<D>, D> + LinkedAlgebra<Value<T>, T> + ArrayAlgebra<D, Scalar = T, Dims = Dims>,
Dims: PartialEq + Clone + Copy + Debug + Default + 'static + Send + Sync,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
T: Number,
[src]
impl<D, E, T, Dims> ArrayAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CoreAlgebra<T, Value = T> + LinkedAlgebra<Value<D>, D> + LinkedAlgebra<Value<T>, T> + ArrayAlgebra<D, Scalar = T, Dims = Dims>,
Dims: PartialEq + Clone + Copy + Debug + Default + 'static + Send + Sync,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
T: Number,
[src]type Dims = Dims
type Scalar = Value<T>
fn flat(&mut self, v: &Value<D>) -> Value<D>
[src]
fn moddims(&mut self, v: &Value<D>, rdims: Dims) -> Result<Value<D>>
[src]
fn tile_as(&mut self, v: &Value<D>, rdims: Dims) -> Result<Value<D>>
[src]
fn sum_as(&mut self, v: &Value<D>, rdims: Dims) -> Result<Value<D>>
[src]
fn constant_as(&mut self, v: &Value<T>, dims: Dims) -> Value<D>
[src]
fn as_scalar(&mut self, v: &Value<D>) -> Result<Value<T>>
[src]
fn scale(&mut self, v1: &Value<T>, v2: &Value<D>) -> Value<D>
[src]
fn dot(&mut self, v1: &Value<D>, v2: &Value<D>) -> Result<Value<T>>
[src]
fn norm2(&mut self, v: &Value) -> Self::Scalar
[src]
impl<D, E, T, Dims> ArrayAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CoreAlgebra<T, Value = T> + LinkedAlgebra<Value<D>, D> + LinkedAlgebra<Value<T>, T> + ArrayAlgebra<D, Scalar = T, Dims = Dims>,
Dims: PartialEq + Clone + Copy + Debug + Default + 'static + Send + Sync,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
T: Number,
[src]
impl<D, E, T, Dims> ArrayAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CoreAlgebra<T, Value = T> + LinkedAlgebra<Value<D>, D> + LinkedAlgebra<Value<T>, T> + ArrayAlgebra<D, Scalar = T, Dims = Dims>,
Dims: PartialEq + Clone + Copy + Debug + Default + 'static + Send + Sync,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
T: Number,
[src]type Dims = Dims
type Scalar = Value<T>
fn flat(&mut self, v: &Value<D>) -> Value<D>
[src]
fn moddims(&mut self, v: &Value<D>, rdims: Dims) -> Result<Value<D>>
[src]
fn tile_as(&mut self, v: &Value<D>, rdims: Dims) -> Result<Value<D>>
[src]
fn sum_as(&mut self, v: &Value<D>, rdims: Dims) -> Result<Value<D>>
[src]
fn constant_as(&mut self, v: &Value<T>, dims: Dims) -> Value<D>
[src]
fn as_scalar(&mut self, v: &Value<D>) -> Result<Value<T>>
[src]
fn scale(&mut self, v1: &Value<T>, v2: &Value<D>) -> Value<D>
[src]
fn dot(&mut self, v1: &Value<D>, v2: &Value<D>) -> Result<Value<T>>
[src]
fn norm2(&mut self, v: &Value) -> Self::Scalar
[src]
impl<D, E, T, Dims> ArrayCompareAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CoreAlgebra<T, Value = T> + CompareAlgebra<D> + ArrayCompareAlgebra<D> + ArrayAlgebra<D, Dims = Dims> + ArithAlgebra<D> + ArrayAlgebra<D, Scalar = T, Dims = Dims> + LinkedAlgebra<Value<D>, D> + LinkedAlgebra<Value<T>, T>,
T: Number,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Default + Copy + Clone + 'static + Send + Sync,
[src]
impl<D, E, T, Dims> ArrayCompareAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CoreAlgebra<T, Value = T> + CompareAlgebra<D> + ArrayCompareAlgebra<D> + ArrayAlgebra<D, Dims = Dims> + ArithAlgebra<D> + ArrayAlgebra<D, Scalar = T, Dims = Dims> + LinkedAlgebra<Value<D>, D> + LinkedAlgebra<Value<T>, T>,
T: Number,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Default + Copy + Clone + 'static + Send + Sync,
[src]impl<D, E, T, Dims> ArrayCompareAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CoreAlgebra<T, Value = T> + CompareAlgebra<D> + ArrayCompareAlgebra<D> + ArrayAlgebra<D, Dims = Dims> + ArithAlgebra<D> + ArrayAlgebra<D, Scalar = T, Dims = Dims> + LinkedAlgebra<Value<D>, D> + LinkedAlgebra<Value<T>, T>,
T: Number,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Default + Copy + Clone + 'static + Send + Sync,
[src]
impl<D, E, T, Dims> ArrayCompareAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CoreAlgebra<T, Value = T> + CompareAlgebra<D> + ArrayCompareAlgebra<D> + ArrayAlgebra<D, Dims = Dims> + ArithAlgebra<D> + ArrayAlgebra<D, Scalar = T, Dims = Dims> + LinkedAlgebra<Value<D>, D> + LinkedAlgebra<Value<T>, T>,
T: Number,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Default + Copy + Clone + 'static + Send + Sync,
[src]impl<D, E, Dims> CompareAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CompareAlgebra<D> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]
impl<D, E, Dims> CompareAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CompareAlgebra<D> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]fn select_argmax(
&mut self,
v0: &Value<D>,
v1: &Value<D>,
r0: Option<&Value<D>>,
r1: Option<&Value<D>>
) -> Result<Value<D>>
[src]
&mut self,
v0: &Value<D>,
v1: &Value<D>,
r0: Option<&Value<D>>,
r1: Option<&Value<D>>
) -> Result<Value<D>>
fn min(&mut self, v0: &Value, v1: &Value) -> Result<Value>
[src]
fn max(&mut self, v0: &Value, v1: &Value) -> Result<Value>
[src]
fn abs(&mut self, v: &Value) -> Value where
Self: ArithAlgebra<Value>,
[src]
Self: ArithAlgebra<Value>,
fn sign(&mut self, v: &Value) -> Value where
Self: ArithAlgebra<Value>,
[src]
Self: ArithAlgebra<Value>,
fn relu(&mut self, v: &Value) -> Value where
Self: ArithAlgebra<Value>,
[src]
Self: ArithAlgebra<Value>,
impl<D, E, Dims> CompareAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CompareAlgebra<D> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]
impl<D, E, Dims> CompareAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + CompareAlgebra<D> + LinkedAlgebra<Value<D>, D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]fn select_argmax(
&mut self,
v0: &Value<D>,
v1: &Value<D>,
r0: Option<&Value<D>>,
r1: Option<&Value<D>>
) -> Result<Value<D>>
[src]
&mut self,
v0: &Value<D>,
v1: &Value<D>,
r0: Option<&Value<D>>,
r1: Option<&Value<D>>
) -> Result<Value<D>>
fn min(&mut self, v0: &Value, v1: &Value) -> Result<Value>
[src]
fn max(&mut self, v0: &Value, v1: &Value) -> Result<Value>
[src]
fn abs(&mut self, v: &Value) -> Value where
Self: ArithAlgebra<Value>,
[src]
Self: ArithAlgebra<Value>,
fn sign(&mut self, v: &Value) -> Value where
Self: ArithAlgebra<Value>,
[src]
Self: ArithAlgebra<Value>,
fn relu(&mut self, v: &Value) -> Value where
Self: ArithAlgebra<Value>,
[src]
Self: ArithAlgebra<Value>,
impl<D, E, Dims, C> ConstArithAlgebra<Value<D>, C> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + ArithAlgebra<D> + ConstArithAlgebra<D, C> + LinkedAlgebra<Value<D>, D>,
C: Sub<C, Output = C> + One + Clone + 'static + Send + Sync,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]
impl<D, E, Dims, C> ConstArithAlgebra<Value<D>, C> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + ArithAlgebra<D> + ConstArithAlgebra<D, C> + LinkedAlgebra<Value<D>, D>,
C: Sub<C, Output = C> + One + Clone + 'static + Send + Sync,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]impl<D, E, Dims, C> ConstArithAlgebra<Value<D>, C> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + ArithAlgebra<D> + ConstArithAlgebra<D, C> + LinkedAlgebra<Value<D>, D>,
C: Sub<C, Output = C> + One + Clone + 'static + Send + Sync,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]
impl<D, E, Dims, C> ConstArithAlgebra<Value<D>, C> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + ArithAlgebra<D> + ConstArithAlgebra<D, C> + LinkedAlgebra<Value<D>, D>,
C: Sub<C, Output = C> + One + Clone + 'static + Send + Sync,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]impl<T: 'static> GradientReader<GradientId<T>, Value<T>> for GenericGradientMapN
[src]
impl<T: 'static> GradientReader<GradientId<T>, Value<T>> for GenericGradientMapN
[src]fn read(&self, id: GradientId<T>) -> Option<&Value<T>>
[src]
impl<T: 'static> GradientStore<GradientId<T>, Value<T>> for GenericGradientMapN
[src]
impl<T: 'static> GradientStore<GradientId<T>, Value<T>> for GenericGradientMapN
[src]fn insert(&mut self, id: GradientId<T>, gradient: Value<T>)
[src]
fn get_mut(&mut self, id: GradientId<T>) -> Option<&mut Value<T>>
[src]
fn get(&self, id: Id) -> Option<&T>
[src]
fn add_gradient<A, G: ?Sized>(
&mut self,
graph: &mut G,
id: Id,
value: &T
) -> Result<()> where
G: CoreAlgebra<A, Value = T>,
Id: Copy,
T: Clone + 'static,
[src]
&mut self,
graph: &mut G,
id: Id,
value: &T
) -> Result<()> where
G: CoreAlgebra<A, Value = T>,
Id: Copy,
T: Clone + 'static,
impl<A> HasGradientId for Value<A>
[src]
impl<A> HasGradientId for Value<A>
[src]type GradientId = GradientId<A>
fn gid(&self) -> Result<Self::GradientId>
[src]
impl<D, A> LinkedAlgebra<Value<D>, D> for A where
A: CoreAlgebra<D, Value = D>,
[src]
impl<D, A> LinkedAlgebra<Value<D>, D> for A where
A: CoreAlgebra<D, Value = D>,
[src]Ignore the link when evaluating pure arrays.
impl<D, E, Dims> MatrixAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + LinkedAlgebra<Value<D>, D> + MatrixAlgebra<D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]
impl<D, E, Dims> MatrixAlgebra<Value<D>> for Graph<Config1<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + LinkedAlgebra<Value<D>, D> + MatrixAlgebra<D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]impl<D, E, Dims> MatrixAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + LinkedAlgebra<Value<D>, D> + MatrixAlgebra<D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]
impl<D, E, Dims> MatrixAlgebra<Value<D>> for Graph<ConfigN<E>> where
E: Default + Clone + CoreAlgebra<D, Value = D> + LinkedAlgebra<Value<D>, D> + MatrixAlgebra<D>,
D: HasDims<Dims = Dims> + Clone + 'static + Send + Sync,
Dims: PartialEq + Debug + Clone + 'static + Send + Sync,
[src]impl<D> StructuralPartialEq for Value<D>
[src]
impl<D> StructuralPartialEq for Value<D>
[src]Auto Trait Implementations
impl<D> RefUnwindSafe for Value<D> where
D: RefUnwindSafe,
impl<D> RefUnwindSafe for Value<D> where
D: RefUnwindSafe,
impl<D> UnwindSafe for Value<D> where
D: UnwindSafe,
impl<D> UnwindSafe for Value<D> where
D: UnwindSafe,
Blanket Implementations
impl<D, A> LinkedAlgebra<Value<D>, D> for A where
A: CoreAlgebra<D, Value = D>,
[src]
impl<D, A> LinkedAlgebra<Value<D>, D> for A where
A: CoreAlgebra<D, Value = D>,
[src]impl<D, A> LinkedAlgebra<Value<D>, D> for A where
A: CoreAlgebra<D, Value = D>,
[src]
impl<D, A> LinkedAlgebra<Value<D>, D> for A where
A: CoreAlgebra<D, Value = D>,
[src]