Struct AReal
pub struct AReal<T: TapeStorage> {
value: T,
pub(crate) slot: u32,
}Fields§
§value: T§slot: u32Implementations§
§impl<T: TapeStorage> AReal<T>
impl<T: TapeStorage> AReal<T>
pub fn new(value: T) -> Self
pub fn value(&self) -> T
pub fn set_value(&mut self, v: T)
pub fn slot(&self) -> u32
pub fn should_record(&self) -> bool
pub fn adjoint(&self, tape: &Tape<T>) -> T
pub fn set_adjoint(&self, tape: &mut Tape<T>, value: T)
pub fn input(value: T, tape: &mut Tape<T>) -> AReal<T>
pub fn register(&mut self, tape: &mut Tape<T>)
pub fn register_input(vars: &mut [AReal<T>], tape: &mut Tape<T>)
pub fn register_output(vars: &mut [AReal<T>], tape: &mut Tape<T>)
Trait Implementations§
§impl<T: TapeStorage> Add for AReal<T>
impl<T: TapeStorage> Add for AReal<T>
§impl<T: TapeStorage> Add<&AReal<T>> for &AReal<T>
impl<T: TapeStorage> Add<&AReal<T>> for &AReal<T>
§impl<T: TapeStorage> Add<&AReal<T>> for AReal<T>
impl<T: TapeStorage> Add<&AReal<T>> for AReal<T>
§impl<T: TapeStorage> Add<AReal<T>> for &AReal<T>
impl<T: TapeStorage> Add<AReal<T>> for &AReal<T>
§impl<T: TapeStorage> Add<T> for AReal<T>
impl<T: TapeStorage> Add<T> for AReal<T>
§impl<T: TapeStorage> Add<T> for &AReal<T>
impl<T: TapeStorage> Add<T> for &AReal<T>
§impl<T: TapeStorage> AddAssign for AReal<T>
impl<T: TapeStorage> AddAssign for AReal<T>
§fn add_assign(&mut self, rhs: AReal<T>)
fn add_assign(&mut self, rhs: AReal<T>)
Performs the
+= operation. Read more§impl<T: TapeStorage> AddAssign<&AReal<T>> for AReal<T>
impl<T: TapeStorage> AddAssign<&AReal<T>> for AReal<T>
§fn add_assign(&mut self, rhs: &AReal<T>)
fn add_assign(&mut self, rhs: &AReal<T>)
Performs the
+= operation. Read more§impl<T: TapeStorage> AddAssign<T> for AReal<T>
impl<T: TapeStorage> AddAssign<T> for AReal<T>
§fn add_assign(&mut self, rhs: T)
fn add_assign(&mut self, rhs: T)
Performs the
+= operation. Read more§impl<T: Clone + TapeStorage> Clone for AReal<T>
impl<T: Clone + TapeStorage> Clone for AReal<T>
impl<T: Copy + TapeStorage> Copy for AReal<T>
§impl<T: TapeStorage> Debug for AReal<T>
impl<T: TapeStorage> Debug for AReal<T>
§impl<T: TapeStorage> Default for AReal<T>
impl<T: TapeStorage> Default for AReal<T>
§impl<T: TapeStorage> Display for AReal<T>
impl<T: TapeStorage> Display for AReal<T>
§impl<T: TapeStorage> Div for AReal<T>
impl<T: TapeStorage> Div for AReal<T>
§impl<T: TapeStorage> Div<&AReal<T>> for &AReal<T>
impl<T: TapeStorage> Div<&AReal<T>> for &AReal<T>
§impl<T: TapeStorage> Div<&AReal<T>> for AReal<T>
impl<T: TapeStorage> Div<&AReal<T>> for AReal<T>
§impl<T: TapeStorage> Div<AReal<T>> for &AReal<T>
impl<T: TapeStorage> Div<AReal<T>> for &AReal<T>
§impl<T: TapeStorage> Div<T> for AReal<T>
impl<T: TapeStorage> Div<T> for AReal<T>
§impl<T: TapeStorage> Div<T> for &AReal<T>
impl<T: TapeStorage> Div<T> for &AReal<T>
§impl<T: TapeStorage> DivAssign for AReal<T>
impl<T: TapeStorage> DivAssign for AReal<T>
§fn div_assign(&mut self, rhs: AReal<T>)
fn div_assign(&mut self, rhs: AReal<T>)
Performs the
/= operation. Read more§impl<T: TapeStorage> DivAssign<&AReal<T>> for AReal<T>
impl<T: TapeStorage> DivAssign<&AReal<T>> for AReal<T>
§fn div_assign(&mut self, rhs: &AReal<T>)
fn div_assign(&mut self, rhs: &AReal<T>)
Performs the
/= operation. Read more§impl<T: TapeStorage> DivAssign<T> for AReal<T>
impl<T: TapeStorage> DivAssign<T> for AReal<T>
§fn div_assign(&mut self, rhs: T)
fn div_assign(&mut self, rhs: T)
Performs the
/= operation. Read more§impl<T: TapeStorage> From<T> for AReal<T>
impl<T: TapeStorage> From<T> for AReal<T>
§impl LiftParams for AReal<f64>
impl LiftParams for AReal<f64>
§impl<T: TapeStorage> Mul for AReal<T>
impl<T: TapeStorage> Mul for AReal<T>
§impl<T: TapeStorage> Mul<&AReal<T>> for &AReal<T>
impl<T: TapeStorage> Mul<&AReal<T>> for &AReal<T>
§impl<T: TapeStorage> Mul<&AReal<T>> for AReal<T>
impl<T: TapeStorage> Mul<&AReal<T>> for AReal<T>
§impl<T: TapeStorage> Mul<AReal<T>> for &AReal<T>
impl<T: TapeStorage> Mul<AReal<T>> for &AReal<T>
§impl<T: TapeStorage> Mul<T> for AReal<T>
impl<T: TapeStorage> Mul<T> for AReal<T>
§impl<T: TapeStorage> Mul<T> for &AReal<T>
impl<T: TapeStorage> Mul<T> for &AReal<T>
§impl<T: TapeStorage> MulAssign for AReal<T>
impl<T: TapeStorage> MulAssign for AReal<T>
§fn mul_assign(&mut self, rhs: AReal<T>)
fn mul_assign(&mut self, rhs: AReal<T>)
Performs the
*= operation. Read more§impl<T: TapeStorage> MulAssign<&AReal<T>> for AReal<T>
impl<T: TapeStorage> MulAssign<&AReal<T>> for AReal<T>
§fn mul_assign(&mut self, rhs: &AReal<T>)
fn mul_assign(&mut self, rhs: &AReal<T>)
Performs the
*= operation. Read more§impl<T: TapeStorage> MulAssign<T> for AReal<T>
impl<T: TapeStorage> MulAssign<T> for AReal<T>
§fn mul_assign(&mut self, rhs: T)
fn mul_assign(&mut self, rhs: T)
Performs the
*= operation. Read more§impl<T: TapeStorage> Neg for AReal<T>
impl<T: TapeStorage> Neg for AReal<T>
§impl<T: TapeStorage> Neg for &AReal<T>
impl<T: TapeStorage> Neg for &AReal<T>
§impl<T: TapeStorage> PartialEq for AReal<T>
impl<T: TapeStorage> PartialEq for AReal<T>
§impl<T: TapeStorage> PartialEq<T> for AReal<T>
impl<T: TapeStorage> PartialEq<T> for AReal<T>
§impl<T: TapeStorage> PartialOrd for AReal<T>
impl<T: TapeStorage> PartialOrd for AReal<T>
§impl<T: TapeStorage> PartialOrd<T> for AReal<T>
impl<T: TapeStorage> PartialOrd<T> for AReal<T>
§impl Real for AReal<f64>
impl Real for AReal<f64>
type Passive = f64
fn value(&self) -> f64
fn zero() -> Self
fn one() -> Self
fn powf(&self, exponent: Self) -> Self
fn powi(&self, exponent: i32) -> Self
fn sum(xs: &[Self]) -> Self
fn dot(xs: &[Self], ys: &[Self]) -> Self
fn weighted_sum(ws: &[Self::Passive], xs: &[Self]) -> Self
fn weighted_dot(ws: &[Self::Passive], xs: &[Self], ys: &[Self]) -> Self
fn max(&self, other: &Self) -> Self
fn min(&self, other: &Self) -> Self
§fn abs(&self) -> Self
fn abs(&self) -> Self
Absolute value.
f' = sign(x), f'' = 0 (away from 0). At x = 0 the derivative is not defined; every surface takes the sub-gradient f'(0) = +1 (the x >= 0 branch), matching the winning-branch convention max/min use for payoffs.§fn inv_norm_cdf(&self) -> Self
fn inv_norm_cdf(&self) -> Self
Inverse standard normal CDF
Φ⁻¹(p). f' = 1/φ(f), f'' = f·f'².§impl<T: TapeStorage> Sub for AReal<T>
impl<T: TapeStorage> Sub for AReal<T>
§impl<T: TapeStorage> Sub<&AReal<T>> for &AReal<T>
impl<T: TapeStorage> Sub<&AReal<T>> for &AReal<T>
§impl<T: TapeStorage> Sub<&AReal<T>> for AReal<T>
impl<T: TapeStorage> Sub<&AReal<T>> for AReal<T>
§impl<T: TapeStorage> Sub<AReal<T>> for &AReal<T>
impl<T: TapeStorage> Sub<AReal<T>> for &AReal<T>
§impl<T: TapeStorage> Sub<T> for AReal<T>
impl<T: TapeStorage> Sub<T> for AReal<T>
§impl<T: TapeStorage> Sub<T> for &AReal<T>
impl<T: TapeStorage> Sub<T> for &AReal<T>
§impl<T: TapeStorage> SubAssign for AReal<T>
impl<T: TapeStorage> SubAssign for AReal<T>
§fn sub_assign(&mut self, rhs: AReal<T>)
fn sub_assign(&mut self, rhs: AReal<T>)
Performs the
-= operation. Read more§impl<T: TapeStorage> SubAssign<&AReal<T>> for AReal<T>
impl<T: TapeStorage> SubAssign<&AReal<T>> for AReal<T>
§fn sub_assign(&mut self, rhs: &AReal<T>)
fn sub_assign(&mut self, rhs: &AReal<T>)
Performs the
-= operation. Read more§impl<T: TapeStorage> SubAssign<T> for AReal<T>
impl<T: TapeStorage> SubAssign<T> for AReal<T>
§fn sub_assign(&mut self, rhs: T)
fn sub_assign(&mut self, rhs: T)
Performs the
-= operation. Read moreAuto Trait Implementations§
impl<T> Freeze for AReal<T>where
T: Freeze,
impl<T> RefUnwindSafe for AReal<T>where
T: RefUnwindSafe,
impl<T> Send for AReal<T>
impl<T> Sync for AReal<T>
impl<T> Unpin for AReal<T>where
T: Unpin,
impl<T> UnsafeUnpin for AReal<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for AReal<T>where
T: UnwindSafe,
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