pub enum StdTensorOp {
Show 49 variants
Add,
Mul,
Neg,
Conj,
DotGeneral {
config: DotGeneralConfig,
},
Transpose {
perm: Vec<usize>,
},
Reshape {
to_shape: Vec<DimExpr>,
},
BroadcastInDim {
shape: Vec<DimExpr>,
dims: Vec<usize>,
},
Convert {
from: DType,
to: DType,
},
Constant {
dtype: DType,
bytes: Vec<u8>,
},
ReduceSum {
axes: Vec<usize>,
},
Div,
Abs,
Sign,
Maximum,
Minimum,
Compare(CompareDir),
Select,
Clamp,
Exp,
Log,
Sin,
Cos,
Tanh,
Sqrt,
Rsqrt,
Pow,
Expm1,
Log1p,
ExtractDiag {
axis_a: usize,
axis_b: usize,
},
EmbedDiag {
axis_a: usize,
axis_b: usize,
},
Tril {
k: i64,
},
Triu {
k: i64,
},
Gather(GatherConfig),
GatherDynamicSliceSizes {
offset_dims: Vec<usize>,
collapsed_slice_dims: Vec<usize>,
start_index_map: Vec<usize>,
index_vector_dim: usize,
slice_sizes: Vec<DimExpr>,
},
Scatter(ScatterConfig),
Slice(SliceConfig),
DynamicSlice {
slice_sizes: Vec<usize>,
},
DynamicUpdateSlice,
Pad(PadConfig),
Concatenate {
axis: usize,
input_count: usize,
},
Reverse {
axes: Vec<usize>,
},
ShapeOf {
axis: usize,
},
DynamicTruncate {
axis: usize,
},
PadToMatch {
axis: usize,
},
ReduceProd {
axes: Vec<usize>,
},
ReduceMax {
axes: Vec<usize>,
},
ReduceMin {
axes: Vec<usize>,
},
Extension(Arc<dyn ExtensionOp>),
}Variants§
Add
Mul
Neg
Conj
DotGeneral
Fields
§
config: DotGeneralConfigTranspose
Reshape
BroadcastInDim
Convert
Constant
ReduceSum
Div
Abs
Sign
Maximum
Minimum
Compare(CompareDir)
Select
Clamp
Exp
Log
Sin
Cos
Tanh
Sqrt
Rsqrt
Pow
Expm1
Log1p
ExtractDiag
EmbedDiag
Tril
Triu
Gather(GatherConfig)
GatherDynamicSliceSizes
Fields
Scatter(ScatterConfig)
Slice(SliceConfig)
DynamicSlice
DynamicUpdateSlice
Pad(PadConfig)
Concatenate
Reverse
ShapeOf
DynamicTruncate
PadToMatch
ReduceProd
ReduceMax
ReduceMin
Extension(Arc<dyn ExtensionOp>)
Out-of-tree extension carrier.
See crate::ext_op and docs/spec/extension-op.md. Identity,
hashing, equality, arity, shape inference, and AD rules are delegated
to the inner ExtensionOp trait object.
Implementations§
Source§impl StdTensorOp
impl StdTensorOp
Sourcepub fn primitive_kind(&self) -> Option<PrimitiveOpKind>
pub fn primitive_kind(&self) -> Option<PrimitiveOpKind>
Return the core primitive catalog kind for this graph operation.
Extension operations do not claim a core primitive kind; they are dispatched through their extension family id instead.
§Examples
use tenferro_core_ops::PrimitiveOpKind;
use tenferro_ops::std_tensor_op::StdTensorOp;
assert_eq!(StdTensorOp::Add.primitive_kind(), Some(PrimitiveOpKind::Add));Source§impl StdTensorOp
impl StdTensorOp
Sourcepub fn constant<T: ConstantScalar>(value: T) -> Self
pub fn constant<T: ConstantScalar>(value: T) -> Self
Create a scalar constant op from any supported tensor scalar.
§Examples
use num_complex::Complex64;
use tenferro_ops::std_tensor_op::StdTensorOp;
use tenferro_tensor::DType;
let real = StdTensorOp::constant(1.5_f64);
let complex = StdTensorOp::constant(Complex64::new(1.0, -2.0));
assert!(matches!(real, StdTensorOp::Constant { dtype: DType::F64, .. }));
assert!(matches!(complex, StdTensorOp::Constant { dtype: DType::C64, .. }));Trait Implementations§
Source§impl Clone for StdTensorOp
impl Clone for StdTensorOp
Source§fn clone(&self) -> StdTensorOp
fn clone(&self) -> StdTensorOp
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 moreSource§impl Debug for StdTensorOp
impl Debug for StdTensorOp
Source§impl GraphOperation for StdTensorOp
impl GraphOperation for StdTensorOp
Source§impl Hash for StdTensorOp
impl Hash for StdTensorOp
Source§impl PartialEq for StdTensorOp
impl PartialEq for StdTensorOp
Source§impl Primitive for StdTensorOp
Available on crate feature autodiff only.
impl Primitive for StdTensorOp
Available on crate feature
autodiff only.Source§type ADContext = ShapeGuardContext
type ADContext = ShapeGuardContext
Runtime AD context threaded through linearization and transposition. Read more
Source§fn add() -> Self
fn add() -> Self
Returns the addition operation used for cotangent accumulation
in [
crate::linear_transpose]. When multiple cotangents flow to the same
ValueKey, linear_transpose emits Op::add() nodes to sum them.Source§fn jvp_rule(
&self,
builder: &mut impl PrimitiveBuilder<Self>,
primal_in: &[ValueKey<Self>],
primal_out: &[ValueKey<Self>],
tangent_in: &[Option<LocalValueId>],
ctx: &mut Self::ADContext,
) -> ADRuleResult<Vec<Option<LocalValueId>>>
fn jvp_rule( &self, builder: &mut impl PrimitiveBuilder<Self>, primal_in: &[ValueKey<Self>], primal_out: &[ValueKey<Self>], tangent_in: &[Option<LocalValueId>], ctx: &mut Self::ADContext, ) -> ADRuleResult<Vec<Option<LocalValueId>>>
Emit the JVP rule for this primitive. Read more
Source§fn transpose_rule(
&self,
builder: &mut impl PrimitiveBuilder<Self>,
cotangent_out: &[Option<LocalValueId>],
inputs: &[PrimitiveValue<Self>],
mode: &OperationRole,
ctx: &mut Self::ADContext,
) -> ADRuleResult<Vec<Option<LocalValueId>>>
fn transpose_rule( &self, builder: &mut impl PrimitiveBuilder<Self>, cotangent_out: &[Option<LocalValueId>], inputs: &[PrimitiveValue<Self>], mode: &OperationRole, ctx: &mut Self::ADContext, ) -> ADRuleResult<Vec<Option<LocalValueId>>>
Emit the transpose rule for this linear primitive. Read more
impl Eq for StdTensorOp
Auto Trait Implementations§
impl Freeze for StdTensorOp
impl !RefUnwindSafe for StdTensorOp
impl Send for StdTensorOp
impl Sync for StdTensorOp
impl Unpin for StdTensorOp
impl UnsafeUnpin for StdTensorOp
impl !UnwindSafe for StdTensorOp
Blanket Implementations§
Source§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