tvm_tirx::ir::expr

Struct PrimExpr

Source
pub struct PrimExpr { /* private fields */ }
Expand description

An expression typed by a PrimType (C++ PrimExpr): a constant, a variable, an operator on scalars or vectors, or a call that returns one.

PrimExpr and IntExpr are typed views (C++ TypedExpr). A view holds an ir.Expr as Expr does, and adds what the object class does not say: the type of the expression. An ir.Call is a PrimExpr when its ty is a PrimType, and an IntExpr when that type is a scalar integer. The views are checked when they are made, so a function that takes one needs no check of its own:

  • A view converts into the views and the Expr it refines for free (From): an IntExpr into a PrimExpr and both into an Expr. Borrowed, an IntExpr is a PrimExpr through AsRef, and both views read their object through Deref, as an Expr does.
  • An Expr converts into a view only through a check (TryFrom, ObjectRefCast::try_cast), as an Any does. A failed check names the expression and its type, ir.StringImm[ty=ir.StringType].
  • IntImm, FloatImm and TensorLoad are typed by a PrimType when they are made, so they convert into a PrimExpr for free. Rust literals convert as they convert into an Expr: an i32 and an f32 as C++ PrimExpr(int32_t) and PrimExpr(float) convert them.
  • The operators build a PrimExpr: each step of an ExprResult is checked, so PrimExpr::try_from(a + b)? reports only the errors of the operators.
  • The view holds its object privately and gives it out only to read, so its type cannot be changed; the one way past the check is the unsafe ObjectRefCore::from_data.
ⓘ
fn widen(expr: Expr) -> PrimExpr {
    expr // An `Expr` is not a `PrimExpr` until it is checked.
}
ⓘ
fn narrow(expr: PrimExpr) -> IntExpr {
    expr.into() // Nor is a `PrimExpr` an `IntExpr`.
}

Implementations§

Source§

impl PrimExpr

Source

pub fn as_expr(&self) -> &Expr

This expression as an Expr, borrowed.

Source

pub fn ty(&self) -> PrimType

The type of this expression (C++ PrimExpr::ty()), which the view guarantees.

Source

pub fn dtype(&self) -> DLDataType

The dtype of this expression’s type.

Trait Implementations§

Source§

impl Add<&PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &PrimExpr) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &PrimExpr) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &PrimExpr) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &PrimExpr) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the + operator.
Source§

fn add(self, rhs: PrimExpr) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the + operator.
Source§

fn add(self, rhs: PrimExpr) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the + operator.
Source§

fn add(self, rhs: PrimExpr) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the + operator.
Source§

fn add(self, rhs: PrimExpr) -> Self::Output

Performs the + operation. Read more
Source§

impl<R: Operand> Add<R> for &PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the + operator.
Source§

fn add(self, rhs: R) -> Self::Output

Performs the + operation. Read more
Source§

impl<R: Operand> Add<R> for PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the + operator.
Source§

fn add(self, rhs: R) -> Self::Output

Performs the + operation. Read more
Source§

impl AnyCompatible for PrimExpr

Source§

unsafe fn is_undefined(field: *const Self) -> bool

Whether field, which holds a value of this type or all-zero bytes, holds all-zero bytes that are no value of this type, as a null object reference, a string of type index None or a zero device type: a field that a creator left undefined for reflection to set, as C++ UnsafeInit leaves a reference undefined (null). Unlike a C++ undefined reference, it is no value; a nullable reference is Option<T>, whose None is a defined value. Read more
Source§

fn type_str() -> String

the type string of the type
Source§

fn get_mismatch_type_info(data: &TVMFFIAny) -> String

Get the type key of a type when TryCastFromAnyView fails.
Source§

unsafe fn copy_to_any_view(src: &Self, data: &mut TVMFFIAny)

the value to copy to TVMFFIAny
Source§

unsafe fn move_to_any(src: Self, data: &mut TVMFFIAny)

consume the value to move to Any
Source§

unsafe fn check_any_strict(data: &TVMFFIAny) -> bool

Source§

unsafe fn copy_from_any_view_after_check(data: &TVMFFIAny) -> Self

Copy value from TVMFFIAny after checking caller must ensure that the value is compatible with the type
Source§

unsafe fn move_from_any_after_check(data: &mut TVMFFIAny) -> Self

the value to move from TVMFFIAny NOTE: pay very careful attention to avoid memory leak! Read more
Source§

unsafe fn try_cast_from_any_view(data: &TVMFFIAny) -> Result<Self, ()>

try to cast the value from AnyView
Source§

fn type_schema() -> String

The type schema of the type: the JSON object C++ TypeTraits<T>::TypeSchema writes, which the type schemas of functions and fields embed. Read more
Source§

fn to_any(&self) -> Any

Borrow self into an owned Any, increfing object-backed values. Read more
Source§

impl<'a> ArgIntoRef for &'a PrimExpr

Source§

type Target = PrimExpr

Source§

fn to_ref(&self) -> &Self::Target

Source§

impl ArgIntoRef for PrimExpr

Source§

type Target = PrimExpr

Source§

fn to_ref(&self) -> &Self::Target

Source§

impl AsRef<PrimExpr> for IntExpr

An IntExpr borrowed as the PrimExpr it is, as C++ IntExpr derives from PrimExpr.

Source§

fn as_ref(&self) -> &PrimExpr

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl BitAnd<&PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &PrimExpr) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &PrimExpr) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &PrimExpr) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &PrimExpr) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: PrimExpr) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: PrimExpr) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: PrimExpr) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: PrimExpr) -> Self::Output

Performs the & operation. Read more
Source§

impl<R: Operand> BitAnd<R> for &PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: R) -> Self::Output

Performs the & operation. Read more
Source§

impl<R: Operand> BitAnd<R> for PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: R) -> Self::Output

Performs the & operation. Read more
Source§

impl BitOr<&PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &PrimExpr) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &PrimExpr) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &PrimExpr) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &PrimExpr) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: PrimExpr) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: PrimExpr) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: PrimExpr) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: PrimExpr) -> Self::Output

Performs the | operation. Read more
Source§

impl<R: Operand> BitOr<R> for &PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: R) -> Self::Output

Performs the | operation. Read more
Source§

impl<R: Operand> BitOr<R> for PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: R) -> Self::Output

Performs the | operation. Read more
Source§

impl BitXor<&PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &PrimExpr) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &PrimExpr) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &PrimExpr) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &PrimExpr) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: PrimExpr) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: PrimExpr) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: PrimExpr) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: PrimExpr) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<R: Operand> BitXor<R> for &PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: R) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<R: Operand> BitXor<R> for PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: R) -> Self::Output

Performs the ^ operation. Read more
Source§

impl Clone for PrimExpr

Source§

fn clone(&self) -> PrimExpr

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Deref for PrimExpr

The expression object, to read, as Expr dereferences to it.

Source§

type Target = ExprObj

The resulting type after dereferencing.
Source§

fn deref(&self) -> &ExprObj

Dereferences the value.
Source§

impl From<&FloatImm> for PrimExpr

Source§

fn from(value: &FloatImm) -> Self

Converts to this type from the input type.
Source§

impl From<&IntExpr> for PrimExpr

Source§

fn from(value: &IntExpr) -> Self

Converts to this type from the input type.
Source§

impl From<&IntImm> for PrimExpr

Source§

fn from(value: &IntImm) -> Self

Converts to this type from the input type.
Source§

impl From<&PrimExpr> for Expr

Source§

fn from(value: &PrimExpr) -> Self

Converts to this type from the input type.
Source§

impl From<&PrimExpr> for ExprResult

Source§

fn from(value: &PrimExpr) -> Self

Converts to this type from the input type.
Source§

impl From<&PrimExpr> for PrimExpr

Source§

fn from(value: &PrimExpr) -> Self

Converts to this type from the input type.
Source§

impl From<&TensorLoad> for PrimExpr

Source§

fn from(value: &TensorLoad) -> Self

Converts to this type from the input type.
Source§

impl From<FloatImm> for PrimExpr

Source§

fn from(value: FloatImm) -> Self

Converts to this type from the input type.
Source§

impl From<IntExpr> for PrimExpr

Source§

fn from(value: IntExpr) -> Self

Converts to this type from the input type.
Source§

impl From<IntImm> for PrimExpr

Source§

fn from(value: IntImm) -> Self

Converts to this type from the input type.
Source§

impl From<PrimExpr> for Expr

Source§

fn from(value: PrimExpr) -> Self

Converts to this type from the input type.
Source§

impl From<PrimExpr> for ExprResult

Source§

fn from(value: PrimExpr) -> Self

Converts to this type from the input type.
Source§

impl From<TensorLoad> for PrimExpr

Source§

fn from(value: TensorLoad) -> Self

Converts to this type from the input type.
Source§

impl From<bool> for PrimExpr

A bool is a boolean constant, as C++ converts a bool held by an Any. (C++ promotes a bool argument to PrimExpr(int32_t), an int32 constant.)

Source§

fn from(value: bool) -> Self

Converts to this type from the input type.
Source§

impl From<f32> for PrimExpr

An f32 is a float32 constant (C++ PrimExpr(float)).

Source§

fn from(value: f32) -> Self

Converts to this type from the input type.
Source§

impl From<f64> for PrimExpr

An f64 is a float64 constant, as C++ types a double next to an expression. (C++ converts a double held by an Any to float32.)

Source§

fn from(value: f64) -> Self

Converts to this type from the input type.
Source§

impl From<i32> for PrimExpr

An i32 is an int32 constant (C++ PrimExpr(int32_t)).

Source§

fn from(value: i32) -> Self

Converts to this type from the input type.
Source§

impl From<i64> for PrimExpr

An i64 is an int64 constant. (C++ converts an int64_t held by an Any to int32 when the value fits.)

Source§

fn from(value: i64) -> Self

Converts to this type from the input type.
Source§

impl<'a> IntoArgHolder for &'a PrimExpr

Source§

impl IntoArgHolder for PrimExpr

Source§

impl Mul<&PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &PrimExpr) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &PrimExpr) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &PrimExpr) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &PrimExpr) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: PrimExpr) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: PrimExpr) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: PrimExpr) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: PrimExpr) -> Self::Output

Performs the * operation. Read more
Source§

impl<R: Operand> Mul<R> for &PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: R) -> Self::Output

Performs the * operation. Read more
Source§

impl<R: Operand> Mul<R> for PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: R) -> Self::Output

Performs the * operation. Read more
Source§

impl Neg for &PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
Source§

impl Neg for PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
Source§

impl Not for &PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl Not for PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl ObjectRefCore for PrimExpr

Source§

unsafe fn from_data(data: ObjectArc<ExprObj>) -> Self

The view of data.

§Safety

The type of data is one the view accepts.

Source§

type ContainerType = ExprObj

Source§

fn data(this: &Self) -> &ObjectArc<ExprObj>

Source§

fn into_data(this: Self) -> ObjectArc<ExprObj>

Source§

fn same_as<Other>(&self, other: &Other) -> bool
where Other: ObjectRefCore,

Return whether two object references point to the same allocation.
Source§

fn downcast_ref<T>(&self) -> Option<&T>
where T: ObjectCore,

Borrow the underlying object as T when its runtime type is T or a subtype. Read more
Source§

impl PrimOps for PrimExpr

Source§

fn to_expr_result(&self) -> ExprResult

This expression as an ExprResult (a reference-count increment).
Source§

fn less(&self, rhs: impl Operand) -> ExprResult

C++ a < b (lt).
Source§

fn less_equal(&self, rhs: impl Operand) -> ExprResult

C++ a <= b (le).
Source§

fn greater(&self, rhs: impl Operand) -> ExprResult

C++ a > b (gt).
Source§

fn greater_equal(&self, rhs: impl Operand) -> ExprResult

C++ a >= b (ge).
Source§

fn equal(&self, rhs: impl Operand) -> ExprResult

C++ a == b (eq).
Source§

fn not_equal(&self, rhs: impl Operand) -> ExprResult

C++ a != b (ne).
Source§

fn logical_and(&self, rhs: impl IntoExpr) -> ExprResult

C++ a && b (logical_and).
Source§

fn logical_or(&self, rhs: impl IntoExpr) -> ExprResult

C++ a || b (logical_or).
Source§

fn div(&self, rhs: impl Operand) -> ExprResult

C++ div: a / b, truncating for integers.
Source§

fn truncdiv(&self, rhs: impl Operand) -> ExprResult

C++ truncdiv.
Source§

fn truncmod(&self, rhs: impl Operand) -> ExprResult

C++ truncmod.
Source§

fn floordiv(&self, rhs: impl Operand) -> ExprResult

C++ floordiv.
Source§

fn floormod(&self, rhs: impl Operand) -> ExprResult

C++ floormod.
Source§

fn indexdiv(&self, rhs: impl Operand) -> ExprResult

C++ indexdiv.
Source§

fn indexmod(&self, rhs: impl Operand) -> ExprResult

C++ indexmod.
Source§

fn ceildiv(&self, rhs: impl Operand) -> ExprResult

C++ ceildiv.
Source§

fn min(&self, rhs: impl Operand) -> ExprResult

C++ min.
Source§

fn max(&self, rhs: impl Operand) -> ExprResult

C++ max.
Source§

fn pow(&self, rhs: impl IntoExpr) -> ExprResult

C++ pow(a, b) (pow).
Source§

fn fmod(&self, rhs: impl IntoExpr) -> ExprResult

C++ fmod(a, b) (fmod).
Source§

fn atan2(&self, rhs: impl IntoExpr) -> ExprResult

C++ atan2(a, b) (atan2).
Source§

fn nextafter(&self, rhs: impl IntoExpr) -> ExprResult

C++ nextafter(a, b) (nextafter).
Source§

fn copysign(&self, rhs: impl IntoExpr) -> ExprResult

C++ copysign(a, b) (copysign).
Source§

fn hypot(&self, rhs: impl IntoExpr) -> ExprResult

C++ hypot(a, b) (hypot).
Source§

fn ldexp(&self, rhs: impl IntoExpr) -> ExprResult

C++ ldexp(a, b) (ldexp).
Source§

fn bitwise_not(&self) -> ExprResult

C++ ~a (bitwise_not).
Source§

fn floor(&self) -> ExprResult

C++ floor.
Source§

fn ceil(&self) -> ExprResult

C++ ceil.
Source§

fn round(&self) -> ExprResult

C++ round.
Source§

fn nearbyint(&self) -> ExprResult

C++ nearbyint.
Source§

fn trunc(&self) -> ExprResult

C++ trunc.
Source§

fn abs(&self) -> ExprResult

C++ abs.
Source§

fn isnan(&self) -> ExprResult

C++ isnan.
Source§

fn isinf(&self) -> ExprResult

C++ isinf.
Source§

fn isfinite(&self) -> ExprResult

C++ isfinite.
Source§

fn likely(&self) -> ExprResult

C++ likely.
Source§

fn assume(&self) -> ExprResult

C++ assume.
Source§

fn clz(&self) -> ExprResult

C++ clz.
Source§

fn exp(&self) -> ExprResult

C++ exp.
Source§

fn exp2(&self) -> ExprResult

C++ exp2.
Source§

fn exp10(&self) -> ExprResult

C++ exp10.
Source§

fn erf(&self) -> ExprResult

C++ erf.
Source§

fn sigmoid(&self) -> ExprResult

C++ sigmoid.
Source§

fn sqrt(&self) -> ExprResult

C++ sqrt.
Source§

fn rsqrt(&self) -> ExprResult

C++ rsqrt.
Source§

fn log(&self) -> ExprResult

C++ log.
Source§

fn log2(&self) -> ExprResult

C++ log2.
Source§

fn log10(&self) -> ExprResult

C++ log10.
Source§

fn log1p(&self) -> ExprResult

C++ log1p.
Source§

fn popcount(&self) -> ExprResult

C++ popcount.
Source§

fn tanh(&self) -> ExprResult

C++ tanh.
Source§

fn tan(&self) -> ExprResult

C++ tan.
Source§

fn cos(&self) -> ExprResult

C++ cos.
Source§

fn cosh(&self) -> ExprResult

C++ cosh.
Source§

fn sin(&self) -> ExprResult

C++ sin.
Source§

fn sinh(&self) -> ExprResult

C++ sinh.
Source§

fn asin(&self) -> ExprResult

C++ asin.
Source§

fn acos(&self) -> ExprResult

C++ acos.
Source§

fn atan(&self) -> ExprResult

C++ atan.
Source§

fn acosh(&self) -> ExprResult

C++ acosh.
Source§

fn asinh(&self) -> ExprResult

C++ asinh.
Source§

fn atanh(&self) -> ExprResult

C++ atanh.
Source§

fn cast(&self, ty: impl Into<PrimType>) -> ExprResult

C++ cast(a, t) (cast).
Source§

fn if_then_else(&self, t: impl IntoExpr, f: impl IntoExpr) -> ExprResult

C++ if_then_else(self, t, f) (if_then_else), with self the condition.
Source§

fn select(&self, t: impl IntoExpr, f: impl IntoExpr) -> ExprResult

The raw Select(self, t, f) (Select::new), with self the condition.
Source§

impl Shl<&PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: &PrimExpr) -> Self::Output

Performs the << operation. Read more
Source§

impl Shl<&PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: &PrimExpr) -> Self::Output

Performs the << operation. Read more
Source§

impl Shl<&PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: &PrimExpr) -> Self::Output

Performs the << operation. Read more
Source§

impl Shl<&PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: &PrimExpr) -> Self::Output

Performs the << operation. Read more
Source§

impl Shl<PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: PrimExpr) -> Self::Output

Performs the << operation. Read more
Source§

impl Shl<PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: PrimExpr) -> Self::Output

Performs the << operation. Read more
Source§

impl Shl<PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: PrimExpr) -> Self::Output

Performs the << operation. Read more
Source§

impl Shl<PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: PrimExpr) -> Self::Output

Performs the << operation. Read more
Source§

impl<R: Operand> Shl<R> for &PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: R) -> Self::Output

Performs the << operation. Read more
Source§

impl<R: Operand> Shl<R> for PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: R) -> Self::Output

Performs the << operation. Read more
Source§

impl Shr<&PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: &PrimExpr) -> Self::Output

Performs the >> operation. Read more
Source§

impl Shr<&PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: &PrimExpr) -> Self::Output

Performs the >> operation. Read more
Source§

impl Shr<&PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: &PrimExpr) -> Self::Output

Performs the >> operation. Read more
Source§

impl Shr<&PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: &PrimExpr) -> Self::Output

Performs the >> operation. Read more
Source§

impl Shr<PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: PrimExpr) -> Self::Output

Performs the >> operation. Read more
Source§

impl Shr<PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: PrimExpr) -> Self::Output

Performs the >> operation. Read more
Source§

impl Shr<PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: PrimExpr) -> Self::Output

Performs the >> operation. Read more
Source§

impl Shr<PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: PrimExpr) -> Self::Output

Performs the >> operation. Read more
Source§

impl<R: Operand> Shr<R> for &PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: R) -> Self::Output

Performs the >> operation. Read more
Source§

impl<R: Operand> Shr<R> for PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: R) -> Self::Output

Performs the >> operation. Read more
Source§

impl Sub<&PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &PrimExpr) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &PrimExpr) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &PrimExpr) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &PrimExpr) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<PrimExpr> for f32

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: PrimExpr) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<PrimExpr> for f64

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: PrimExpr) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<PrimExpr> for i32

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: PrimExpr) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<PrimExpr> for i64

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: PrimExpr) -> Self::Output

Performs the - operation. Read more
Source§

impl<R: Operand> Sub<R> for &PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: R) -> Self::Output

Performs the - operation. Read more
Source§

impl<R: Operand> Sub<R> for PrimExpr

Source§

type Output = ExprResult

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: R) -> Self::Output

Performs the - operation. Read more
Source§

impl TryFrom<&Expr> for PrimExpr

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: &Expr) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<&PrimExpr> for IntExpr

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: &PrimExpr) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<Any> for PrimExpr

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: Any) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<AnyView<'a>> for PrimExpr

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: AnyView<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<Expr> for PrimExpr

The view of an expression whose type it accepts; a TypeError names any other.

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: Expr) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<ExprResult> for PrimExpr

Source§

fn try_from(value: ExprResult) -> Result<Self>

The built expression, which every step checks is a PrimExpr, or the first error raised while building it.

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

impl TryFrom<PrimExpr> for IntExpr

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: PrimExpr) -> Result<Self>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> ArgType for T
where T: ObjectRefCore + AnyCompatible + 'static,

Source§

fn check(value: &TVMFFIAny) -> bool

Whether value, which is not None, is accepted (C++ CheckAnyStrict).
Source§

fn type_str() -> String

The expected type, for an error (C++ TypeStr).
Source§

fn mismatch(value: &TVMFFIAny) -> String

The rejected value, for an error (C++ GetMismatchTypeInfo): its type key.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoExpr for T
where T: Into<Expr>,

Source§

impl<T> ObjectRefCast for T

Source§

fn try_cast<B>(self) -> Result<B, Error>

Consume self and rewrap the underlying object as B without copying.
Source§

impl<T> Operand for T
where T: Into<ExprResult>,

Source§

fn classify(self) -> OperandKind

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.