Struct astro_nalgebra::ConstCtx
source · pub struct ConstCtx<const P: usize, const RM: u8 = 1> { /* private fields */ }
Expand description
Computation context for BigFloat
that has a compile-time constant precision and rounding
mode. This tag struct is required to specify what the precision result will be for methods in
nalgebra that do not take any arguments such as RealField::pi
.
Example
use astro_nalgebra::{BigFloat, ConstCtx, RoundingMode};
// This defines a type that has a precision upper bound of
// 1024 bits in the mantissa and no explicit rounding mode
type BF1024 = BigFloat<ConstCtx<1024>>;
// This defines a type that has a precision upper bound of 256 bits in the
// mantissa and rounds up for all imprecise operations.
// Note that casting cannot be inlined into the const generic, so it has to
// be declared as a constant outside and then referenced.
const UP: u8 = RoundingMode::Up as u8;
type BF256Up = BigFloat<ConstCtx<256,UP>>;
fn main() {
let two: BF1024 = "2".parse().unwrap();
}
This struct is meant to be used as a tag, so it is never actually constructable.
Trait Implementations§
source§impl<const P: usize, const RM: u8> BigFloatCtx for ConstCtx<P, RM>
impl<const P: usize, const RM: u8> BigFloatCtx for ConstCtx<P, RM>
source§fn get_prec() -> usize
fn get_prec() -> usize
Returns the precision in bits of this specific context.
This is either a const for
ConstCtx
or dynamic with
make_dyn_ctx
.source§fn get_rm() -> RoundingMode
fn get_rm() -> RoundingMode
Returns the
RoundingMode
of this specific context.
This is either a const for ConstCtx
or dynamic with
make_dyn_ctx
.fn run<F, R>(f: F) -> Rwhere
F: FnOnce(&mut Context) -> R,
source§impl<const P: usize, const RM: u8> PartialEq for ConstCtx<P, RM>
impl<const P: usize, const RM: u8> PartialEq for ConstCtx<P, RM>
impl<const P: usize, const RM: u8> Copy for ConstCtx<P, RM>
impl<const P: usize, const RM: u8> StructuralPartialEq for ConstCtx<P, RM>
Auto Trait Implementations§
impl<const P: usize, const RM: u8> RefUnwindSafe for ConstCtx<P, RM>
impl<const P: usize, const RM: u8> Send for ConstCtx<P, RM>
impl<const P: usize, const RM: u8> Sync for ConstCtx<P, RM>
impl<const P: usize, const RM: u8> Unpin for ConstCtx<P, RM>
impl<const P: usize, const RM: u8> UnwindSafe for ConstCtx<P, RM>
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
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.