MCPcopy Index your code
hub / github.com/arrayfire/arrayfire-rust / HasAfEnum

Interface HasAfEnum

src/core/util.rs:142–189  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

140/// - u16
141///
142pub trait HasAfEnum {
143 /// This type alias points to `Self` always.
144 type InType: HasAfEnum;
145 /// This type alias points to the data type used to hold real part of a
146 /// complex number. For real valued numbers, this points to `Self`.
147 type BaseType: HasAfEnum;
148 /// This type alias points to `f32` for all 32 bit size types and `f64` for
149 /// larger 64-bit size types.
150 type AbsOutType: HasAfEnum;
151 /// This type alias points to `f64`/`f32` for floating point types and
152 /// `Self` otherwise.
153 type ArgOutType: HasAfEnum;
154 /// This type alias is used to define the output Array type for unary
155 /// operations. It points to `Self` for floating point types, either
156 /// real or complex. It points to `f32` for rest of the input types.
157 type UnaryOutType: HasAfEnum;
158 /// This type alias points to complex type created from a given input type.
159 /// This alias always points to either `std::Complex<f32>` or `std::Complex<f64>`
160 type ComplexOutType;
161 /// This type alias points to a data type that can store the mean value for
162 /// a given input type. This alias points to `f32`/`Complex<f32>` for all 32
163 /// bit size types and `f64`/`Complex<f64>` for larger 64-bit size types.
164 type MeanOutType: HasAfEnum;
165 /// This type alias points to a data type that can store the result of
166 /// aggregation of set of values for a given input type. Aggregate type
167 /// alias points to below types for given input types:
168 /// - `Self` for input types: `Complex<64>`, `Complex<f32>`, `f64`, `f32`, `i64`, `u64`
169 /// - `u32` for input types: `bool`
170 /// - `u32` for input types: `u8`
171 /// - `i32` for input types: `i16`
172 /// - `u32` for input types: `u16`
173 /// - `i32` for input types: `i32`
174 /// - `u32` for input types: `u32`
175 type AggregateOutType: HasAfEnum;
176 /// This type is different for b8 input type
177 type ProductOutType: HasAfEnum;
178 /// This type alias points to the output type for given input type of
179 /// sobel filter operation. Sobel filter output alias points to below
180 /// types for given input types:
181 /// - `f32` for input types: `Complex<f32>`, `f32`
182 /// - `f64` for input types: `Complex<f64>`, `f64`
183 /// - `i32` for input types: `bool`, `u8`, `i16`, `u16`, `i32`, `u32`
184 /// - `i64` for input types: `i64`, `u64`
185 type SobelOutType: HasAfEnum;
186
187 /// Return trait implmentors corresponding [DType](./enum.DType.html)
188 fn get_af_dtype() -> DType;
189}
190
191impl HasAfEnum for Complex<f32> {
192 type InType = Self;

Callers

nothing calls this directly

Implementers 1

util.rssrc/core/util.rs

Calls

no outgoing calls

Tested by

no test coverage detected