pub struct Expr { /* private fields */ }Expand description
Shareable symbolic expression represented internally as a directed acyclic graph.
Implementations§
Source§impl Expr
impl Expr
Sourcepub fn named(self, name: impl Into<Arc<str>>) -> Self
pub fn named(self, name: impl Into<Arc<str>>) -> Self
Assigns a display name to the expression root.
Sourcepub fn tagged_with(
self,
tags: impl IntoIterator<Item = impl Into<Arc<str>>>,
) -> Self
pub fn tagged_with( self, tags: impl IntoIterator<Item = impl Into<Arc<str>>>, ) -> Self
Adds each supplied tag to the expression root.
Replace tagged components that do not match any requested tag with zero.
Untagged nodes remain active, while a matching tagged node retains its complete subtree.
Sourcepub fn component(&self, index: impl ComponentIndex) -> Self
pub fn component(&self, index: impl ComponentIndex) -> Self
Selects a component from a vector-valued expression.
Sourcepub fn matrix_element(&self, row: usize, col: usize) -> Self
pub fn matrix_element(&self, row: usize, col: usize) -> Self
Selects an element from a matrix-valued expression.
Sourcepub fn to_graph(&self) -> ExprGraph
pub fn to_graph(&self) -> ExprGraph
Serializes the shareable expression DAG into a topologically ordered graph.
Sourcepub fn from_graph(graph: ExprGraph) -> Result<Self, ExprGraphError>
pub fn from_graph(graph: ExprGraph) -> Result<Self, ExprGraphError>
Rebuilds a shareable expression DAG from its serialized graph form.
§Errors
Returns ExprGraphError when the graph is empty, its root or a child
identifier is invalid, its metadata length does not match its node
count, or its nodes are not topologically ordered.
Sourcepub fn shape(&self) -> Result<ExprShape, ExprShapeError>
pub fn shape(&self) -> Result<ExprShape, ExprShapeError>
Determines and validates the expression’s structural shape.
§Errors
Returns ExprShapeError when this expression contains an operation
whose operand shapes are incompatible.
Trait Implementations§
Source§impl AddAssign for Expr
impl AddAssign for Expr
Source§fn add_assign(&mut self, rhs: Expr)
fn add_assign(&mut self, rhs: Expr)
+= operation. Read moreSource§impl AddAssign<&Complex<f64>> for Expr
impl AddAssign<&Complex<f64>> for Expr
Source§fn add_assign(&mut self, rhs: &Complex64)
fn add_assign(&mut self, rhs: &Complex64)
+= operation. Read moreSource§impl AddAssign<&Expr> for Expr
impl AddAssign<&Expr> for Expr
Source§fn add_assign(&mut self, rhs: &Expr)
fn add_assign(&mut self, rhs: &Expr)
+= operation. Read moreSource§impl AddAssign<&Parameter> for Expr
impl AddAssign<&Parameter> for Expr
Source§fn add_assign(&mut self, rhs: &Parameter)
fn add_assign(&mut self, rhs: &Parameter)
+= operation. Read moreSource§impl AddAssign<&f64> for Expr
impl AddAssign<&f64> for Expr
Source§fn add_assign(&mut self, rhs: &f64)
fn add_assign(&mut self, rhs: &f64)
+= operation. Read moreSource§impl AddAssign<Complex<f64>> for Expr
impl AddAssign<Complex<f64>> for Expr
Source§fn add_assign(&mut self, rhs: Complex64)
fn add_assign(&mut self, rhs: Complex64)
+= operation. Read moreSource§impl AddAssign<Parameter> for Expr
impl AddAssign<Parameter> for Expr
Source§fn add_assign(&mut self, rhs: Parameter)
fn add_assign(&mut self, rhs: Parameter)
+= operation. Read moreSource§impl AddAssign<f64> for Expr
impl AddAssign<f64> for Expr
Source§fn add_assign(&mut self, rhs: f64)
fn add_assign(&mut self, rhs: f64)
+= operation. Read moreSource§impl<'de> Deserialize<'de> for Expr
impl<'de> Deserialize<'de> for Expr
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl DivAssign for Expr
impl DivAssign for Expr
Source§fn div_assign(&mut self, rhs: Expr)
fn div_assign(&mut self, rhs: Expr)
/= operation. Read moreSource§impl DivAssign<&Complex<f64>> for Expr
impl DivAssign<&Complex<f64>> for Expr
Source§fn div_assign(&mut self, rhs: &Complex64)
fn div_assign(&mut self, rhs: &Complex64)
/= operation. Read moreSource§impl DivAssign<&Expr> for Expr
impl DivAssign<&Expr> for Expr
Source§fn div_assign(&mut self, rhs: &Expr)
fn div_assign(&mut self, rhs: &Expr)
/= operation. Read moreSource§impl DivAssign<&Parameter> for Expr
impl DivAssign<&Parameter> for Expr
Source§fn div_assign(&mut self, rhs: &Parameter)
fn div_assign(&mut self, rhs: &Parameter)
/= operation. Read moreSource§impl DivAssign<&f64> for Expr
impl DivAssign<&f64> for Expr
Source§fn div_assign(&mut self, rhs: &f64)
fn div_assign(&mut self, rhs: &f64)
/= operation. Read moreSource§impl DivAssign<Complex<f64>> for Expr
impl DivAssign<Complex<f64>> for Expr
Source§fn div_assign(&mut self, rhs: Complex64)
fn div_assign(&mut self, rhs: Complex64)
/= operation. Read moreSource§impl DivAssign<Parameter> for Expr
impl DivAssign<Parameter> for Expr
Source§fn div_assign(&mut self, rhs: Parameter)
fn div_assign(&mut self, rhs: Parameter)
/= operation. Read moreSource§impl DivAssign<f64> for Expr
impl DivAssign<f64> for Expr
Source§fn div_assign(&mut self, rhs: f64)
fn div_assign(&mut self, rhs: f64)
/= operation. Read moreSource§impl MulAssign for Expr
impl MulAssign for Expr
Source§fn mul_assign(&mut self, rhs: Expr)
fn mul_assign(&mut self, rhs: Expr)
*= operation. Read moreSource§impl MulAssign<&Complex<f64>> for Expr
impl MulAssign<&Complex<f64>> for Expr
Source§fn mul_assign(&mut self, rhs: &Complex64)
fn mul_assign(&mut self, rhs: &Complex64)
*= operation. Read moreSource§impl MulAssign<&Expr> for Expr
impl MulAssign<&Expr> for Expr
Source§fn mul_assign(&mut self, rhs: &Expr)
fn mul_assign(&mut self, rhs: &Expr)
*= operation. Read moreSource§impl MulAssign<&Parameter> for Expr
impl MulAssign<&Parameter> for Expr
Source§fn mul_assign(&mut self, rhs: &Parameter)
fn mul_assign(&mut self, rhs: &Parameter)
*= operation. Read moreSource§impl MulAssign<&f64> for Expr
impl MulAssign<&f64> for Expr
Source§fn mul_assign(&mut self, rhs: &f64)
fn mul_assign(&mut self, rhs: &f64)
*= operation. Read moreSource§impl MulAssign<Complex<f64>> for Expr
impl MulAssign<Complex<f64>> for Expr
Source§fn mul_assign(&mut self, rhs: Complex64)
fn mul_assign(&mut self, rhs: Complex64)
*= operation. Read moreSource§impl MulAssign<Parameter> for Expr
impl MulAssign<Parameter> for Expr
Source§fn mul_assign(&mut self, rhs: Parameter)
fn mul_assign(&mut self, rhs: Parameter)
*= operation. Read moreSource§impl MulAssign<f64> for Expr
impl MulAssign<f64> for Expr
Source§fn mul_assign(&mut self, rhs: f64)
fn mul_assign(&mut self, rhs: f64)
*= operation. Read moreSource§impl SubAssign for Expr
impl SubAssign for Expr
Source§fn sub_assign(&mut self, rhs: Expr)
fn sub_assign(&mut self, rhs: Expr)
-= operation. Read moreSource§impl SubAssign<&Complex<f64>> for Expr
impl SubAssign<&Complex<f64>> for Expr
Source§fn sub_assign(&mut self, rhs: &Complex64)
fn sub_assign(&mut self, rhs: &Complex64)
-= operation. Read moreSource§impl SubAssign<&Expr> for Expr
impl SubAssign<&Expr> for Expr
Source§fn sub_assign(&mut self, rhs: &Expr)
fn sub_assign(&mut self, rhs: &Expr)
-= operation. Read moreSource§impl SubAssign<&Parameter> for Expr
impl SubAssign<&Parameter> for Expr
Source§fn sub_assign(&mut self, rhs: &Parameter)
fn sub_assign(&mut self, rhs: &Parameter)
-= operation. Read moreSource§impl SubAssign<&f64> for Expr
impl SubAssign<&f64> for Expr
Source§fn sub_assign(&mut self, rhs: &f64)
fn sub_assign(&mut self, rhs: &f64)
-= operation. Read moreSource§impl SubAssign<Complex<f64>> for Expr
impl SubAssign<Complex<f64>> for Expr
Source§fn sub_assign(&mut self, rhs: Complex64)
fn sub_assign(&mut self, rhs: Complex64)
-= operation. Read more