1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! OpenCL scalar and vector primitive types.
//!
//! Primitives may have subtly different behaviour within Rust as they do
//! within kernels. Wrapping is one example of this. Scalar integers
//! within Rust may do overflow checks where in the kernel they do not.
//! Therefore two slightly different implementations of the scalar types
//! are provided in addition to a corresponding vector type for each.
//!
//! The `cl_...` (`cl_uchar`, `cl_int`, `cl_float`, etc.) types found in the
//! main `ocl-core` library are simple aliases of the Rust built-in primitive
//! types and therefore always behave exactly the same way. The
//! uppercase-named types (`Uchar`, `Int`, `Float`, etc.) are designed to
//! behave identically to their corresponding types within kernels.
//!
//! Please file an issue if any of the uppercase-named kernel-mimicking
//! types deviate from what they should (as they are reasonably new this
//! is definitely something to watch out for).
//!
//! Vector type fields can be accessed using index operations i.e. [0],
//! [1], [2] ... etc. Plans for other ways of accessing fields (such as
//! `.x()`, `.y()`, `.s0()`, `.s15()`, etc.) may be considered. Create an
//! issue if you have an opinion on the matter.
//!
//! [NOTE]: This module may be renamed.
extern crate num_traits;
pub use ;