#[non_exhaustive]pub enum NumericProfile {
ExcelCompatible,
}Expand description
How the engine combines floating-point numbers where the order of
operations changes the result: the reductions behind SUM, AVERAGE and
the criteria sums, and Excel’s own numeric adjustments.
Every other behaviour is the same under every profile, and results under a profile are the same on every platform, CPU and thread count.
Only NumericProfile::ExcelCompatible exists today. The enum is
#[non_exhaustive] so that a faster profile can be added without a breaking
change: one that sums in a fixed, documented block order that can be split
across cores and vector lanes, and therefore differs from Excel in the last
bits of some results. Each such difference will be listed on that variant.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ExcelCompatible
Excel’s results, bit for bit where Excel’s order is known: sums add one value at a time into one running total, arguments left to right and each range row by row. A single reduction runs on one core.
Trait Implementations§
Source§impl Clone for NumericProfile
impl Clone for NumericProfile
impl Copy for NumericProfile
Source§impl Debug for NumericProfile
impl Debug for NumericProfile
Source§impl Default for NumericProfile
impl Default for NumericProfile
impl Eq for NumericProfile
Source§impl Hash for NumericProfile
impl Hash for NumericProfile
Source§impl PartialEq for NumericProfile
impl PartialEq for NumericProfile
impl StructuralPartialEq for NumericProfile
Auto Trait Implementations§
impl Freeze for NumericProfile
impl RefUnwindSafe for NumericProfile
impl Send for NumericProfile
impl Sync for NumericProfile
impl Unpin for NumericProfile
impl UnsafeUnpin for NumericProfile
impl UnwindSafe for NumericProfile
Blanket Implementations§
impl<T> Allocation for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more