Skip to main content

Crate symoxide

Crate symoxide 

Source
Expand description

Symoxide provides an Intermediate Representation for Scalar Expressions and abstract visitors (called as mappers) for traversing and transforming these expressions.

  • primitives contains the supported expression types.
  • builders contains routines to build these expressions.
  • parse contains a parser implementation for these expressions.
  • operations provides routines for performing common arithmetic operations on these expressions.
  • mappers provides abstract visitor for common traversal patters over scalar expressions.
  • mapper_impls uses mappers to provide helpful analysis tools over the expressions.
  • design_doc goes over the key design decisions that were baked into Symoxide’s architecture.

Re-exports§

pub use builders::var;
pub use mapper_impls::deduplicator::deduplicate_nodes;
pub use mapper_impls::dependency::get_dependencies;
pub use mapper_impls::equality::are_structurally_equal;
pub use mapper_impls::graphvizifier::show_dot;
pub use mapper_impls::hasher::get_hasher;
pub use mapper_impls::node_counter::get_num_nodes;
pub use parse::parse_expr as parse;
pub use primitives::BinaryOpType;
pub use primitives::Expression;
pub use primitives::LiteralT;
pub use primitives::SmallVecExprT;
pub use primitives::UnaryOpType;

Modules§

builders
design_doc
TODO: Decisions taken to ensure that the traversal costs are low/transparent to the mapper writer.TODO: Contribution guidelines, cargo-fmt, adding a new expression type.
display
macros
mapper_impls
mappers
operations
parse
primitives

Macros§

define_binary_op
impl_scalar_to_expr
rust_ty_to_scalar_type
scalar
Converts an i32 or f64 literal into an instance of symoxide::Expression::Scalar.
variables
Converts a space-delimited string to a tuple of symoxide::var calls on individual words.

Structs§

ExpressionRawPointer
Wrap a reference of an expression as a raw pointer to get trivialize comparison and hashing. Tries to reproduce the effect of id(x) from Python world.

Derive Macros§

CachedMapper
Implements the trait symoxide::mappers::CachedMapper for a struct. Requires that struct contains a field named cache of type [std::collections::HashMap].