# [−][src]Trait arrayfire::HasAfEnum

pub trait HasAfEnum {
type InType;
type BaseType;
type AbsOutType;
type ArgOutType;
type UnaryOutType;
type ComplexOutType;
type MeanOutType;
type AggregateOutType;
type ProductOutType;
type SobelOutType;
fn get_af_dtype() -> DType;
}

Types of the data that can be generated using ArrayFire data generation functions.

The trait HasAfEnum has been defined internally for the following types. We strongly suggest not to implement this trait in your program for user defined types because ArrayFire functions will only work for the following data types currently. Any such trait implementation for types other than the ones listed below will result in undefined behavior.

• f32
• f64
• num::Complex<f32>
• num::Complex<f64>
• bool
• i32
• u32
• u8
• i64
• u64
• i16
• u16

## Associated Types

### type InType

This type alias points to Self always.

### type BaseType

This type alias points to the data type used to hold real part of a complex number. For real valued numbers, this points to Self.

### type AbsOutType

This type alias points to f32 for all 32 bit size types and f64 for larger 64-bit size types.

### type ArgOutType

This type alias points to f64/f32 for floating point types and Self otherwise.

### type UnaryOutType

This type alias is used to define the output Array type for unary operations. It points to Self for floating point types, either real or complex. It points to f32 for rest of the input types.

### type ComplexOutType

This type alias points to complex type created from a given input type. This alias always points to either std::Complex<f32> or std::Complex<f64>

### type MeanOutType

This type alias points to a data type that can store the mean value for a given input type. This alias points to f32/Complex<f32> for all 32 bit size types and f64/Complex<f64> for larger 64-bit size types.

### type AggregateOutType

This type alias points to a data type that can store the result of aggregation of set of values for a given input type. Aggregate type alias points to below types for given input types:

• Self for input types: Complex<64>, Complex<f32>, f64, f32, i64, u64
• u32 for input types: bool
• u32 for input types: u8
• i32 for input types: i16
• u32 for input types: u16
• i32 for input types: i32
• u32 for input types: u32

### type ProductOutType

This type is different for b8 input type

### type SobelOutType

This type alias points to the output type for given input type of sobel filter operation. Sobel filter output alias points to below types for given input types:

• f32 for input types: Complex<f32>, f32
• f64 for input types: Complex<f64>, f64
• i32 for input types: bool, u8, i16, u16, i32, u32
• i64 for input types: i64, u64

## Required methods

### fn get_af_dtype() -> DType

Return trait implmentors corresponding DType