[][src]Trait arrow::datatypes::ArrowNumericType

pub trait ArrowNumericType: ArrowPrimitiveType where
    Self::Simd: Add<Output = Self::Simd> + Sub<Output = Self::Simd> + Mul<Output = Self::Simd> + Div<Output = Self::Simd>, 
{ type Simd; type SimdMask; fn lanes() -> usize;
fn load(slice: &[Self::Native]) -> Self::Simd;
fn mask_get(mask: &Self::SimdMask, idx: usize) -> bool;
fn bin_op<F: Fn(Self::Simd, Self::Simd) -> Self::Simd>(
        left: Self::Simd,
        right: Self::Simd,
        op: F
    ) -> Self::Simd;
fn eq(left: Self::Simd, right: Self::Simd) -> Self::SimdMask;
fn ne(left: Self::Simd, right: Self::Simd) -> Self::SimdMask;
fn lt(left: Self::Simd, right: Self::Simd) -> Self::SimdMask;
fn le(left: Self::Simd, right: Self::Simd) -> Self::SimdMask;
fn gt(left: Self::Simd, right: Self::Simd) -> Self::SimdMask;
fn ge(left: Self::Simd, right: Self::Simd) -> Self::SimdMask;
fn write(simd_result: Self::Simd, slice: &mut [Self::Native]); }

A subtype of primitive type that represents numeric values.

SIMD operations are defined in this trait if available on the target system.

Associated Types

type Simd

Defines the SIMD type that should be used for this numeric type

type SimdMask

Defines the SIMD Mask type that should be used for this numeric type

Loading content...

Required methods

fn lanes() -> usize

The number of SIMD lanes available

fn load(slice: &[Self::Native]) -> Self::Simd

Loads a slice into a SIMD register

fn mask_get(mask: &Self::SimdMask, idx: usize) -> bool

Gets the value of a single lane in a SIMD mask

fn bin_op<F: Fn(Self::Simd, Self::Simd) -> Self::Simd>(
    left: Self::Simd,
    right: Self::Simd,
    op: F
) -> Self::Simd

Performs a SIMD binary operation

fn eq(left: Self::Simd, right: Self::Simd) -> Self::SimdMask

fn ne(left: Self::Simd, right: Self::Simd) -> Self::SimdMask

fn lt(left: Self::Simd, right: Self::Simd) -> Self::SimdMask

fn le(left: Self::Simd, right: Self::Simd) -> Self::SimdMask

fn gt(left: Self::Simd, right: Self::Simd) -> Self::SimdMask

fn ge(left: Self::Simd, right: Self::Simd) -> Self::SimdMask

fn write(simd_result: Self::Simd, slice: &mut [Self::Native])

Writes a SIMD result back to a slice

Loading content...

Implementors

impl ArrowNumericType for Date32Type[src]

type Simd = i32x16

type SimdMask = m32x16

impl ArrowNumericType for Date64Type[src]

type Simd = i64x8

type SimdMask = m64x8

impl ArrowNumericType for Float32Type[src]

type Simd = f32x16

type SimdMask = m32x16

impl ArrowNumericType for Float64Type[src]

type Simd = f64x8

type SimdMask = m64x8

impl ArrowNumericType for Int16Type[src]

type Simd = i16x32

type SimdMask = m16x32

impl ArrowNumericType for Int32Type[src]

type Simd = i32x16

type SimdMask = m32x16

impl ArrowNumericType for Int64Type[src]

type Simd = i64x8

type SimdMask = m64x8

impl ArrowNumericType for Int8Type[src]

type Simd = i8x64

type SimdMask = m8x64

impl ArrowNumericType for IntervalDayTimeType[src]

type Simd = i64x8

type SimdMask = m64x8

impl ArrowNumericType for IntervalYearMonthType[src]

type Simd = i64x8

type SimdMask = m64x8

impl ArrowNumericType for Time32MillisecondType[src]

type Simd = i32x16

type SimdMask = m32x16

impl ArrowNumericType for Time32SecondType[src]

type Simd = i32x16

type SimdMask = m32x16

impl ArrowNumericType for Time64MicrosecondType[src]

type Simd = i64x8

type SimdMask = m64x8

impl ArrowNumericType for Time64NanosecondType[src]

type Simd = i64x8

type SimdMask = m64x8

impl ArrowNumericType for TimestampMicrosecondType[src]

type Simd = i64x8

type SimdMask = m64x8

impl ArrowNumericType for TimestampMillisecondType[src]

type Simd = i64x8

type SimdMask = m64x8

impl ArrowNumericType for TimestampNanosecondType[src]

type Simd = i64x8

type SimdMask = m64x8

impl ArrowNumericType for TimestampSecondType[src]

type Simd = i64x8

type SimdMask = m64x8

impl ArrowNumericType for UInt16Type[src]

type Simd = u16x32

type SimdMask = m16x32

impl ArrowNumericType for UInt32Type[src]

type Simd = u32x16

type SimdMask = m32x16

impl ArrowNumericType for UInt64Type[src]

type Simd = u64x8

type SimdMask = m64x8

impl ArrowNumericType for UInt8Type[src]

type Simd = u8x64

type SimdMask = m8x64

Loading content...