mirror of
https://github.com/hanzoai/rocm-rs.git
synced 2026-09-30 23:50:28 +00:00
rocrand/rocarray: bindgen enum types for Windows ABI; edition-2024 unsafe blocks in rocblas wrappers
Windows/MSVC bindgen emits C enums with only non-negative values as
signed c_int (i32) where Linux GCC/Clang emit c_uint (u32). Two classes
of failure surfaced only on the MSVC build:
E0308 (enum signedness, 31 sites, all in rocrand):
- rocrand/mod.rs: rng_type, ordering, direction_vector_set constants
were hand-typed "u32"; retype to the exact bindgen aliases
rocrand_rng_type / rocrand_ordering / rocrand_direction_vector_set.
- rocrand/generator.rs: PseudoRng::new/new_host and QuasiRng::new take
rocrand_rng_type; Generator::set_ordering takes rocrand_ordering.
- rocarray/random.rs: RandomUtils::seeded_generator rng_type param
follows PseudoRng::new (rocrand_rng_type).
These are no-ops on Linux (c_uint == u32) and correct on MSVC (i32).
E0133 (edition 2024 unsafe_op_in_unsafe_fn, 17 sites): the rocblas
level1/2/3 thin forwarders are "pub unsafe fn" but called their unsafe
trait method with no "unsafe { }" block. MSVC denies this lint as a hard
error; wrap each forwarding call. Required identically on both platforms.
rocblas enum args (rocblas_operation/fill/side/diagonal) already convert
via From impls in types.rs and stay correct on both ABIs; rocfft enums
are already bindgen-typed. Generated bindings.rs left untouched.
Verified: cargo check Finishes on Linux for both --features macros and
default features; zero E0308, zero E0133.
This commit is contained in:
@@ -414,7 +414,10 @@ pub struct RandomUtils;
|
||||
|
||||
impl RandomUtils {
|
||||
/// Create a seeded generator for reproducible results
|
||||
pub fn seeded_generator(seed: u64, rng_type: u32) -> Result<PseudoRng> {
|
||||
pub fn seeded_generator(
|
||||
seed: u64,
|
||||
rng_type: crate::rocrand::bindings::rocrand_rng_type,
|
||||
) -> Result<PseudoRng> {
|
||||
let mut generator = PseudoRng::new(rng_type)?;
|
||||
generator.set_seed(seed)?;
|
||||
generator.initialize()?;
|
||||
|
||||
@@ -77,7 +77,9 @@ pub unsafe fn scal_strided_batched<T>(
|
||||
where
|
||||
T: ScalStridedBatchedType,
|
||||
{
|
||||
T::rocblas_scal_strided_batched(handle, n, alpha, x, incx, stride_x, batch_count)
|
||||
unsafe {
|
||||
T::rocblas_scal_strided_batched(handle, n, alpha, x, incx, stride_x, batch_count)
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
@@ -133,7 +135,9 @@ pub unsafe fn copy_batched<T>(
|
||||
where
|
||||
T: CopyBatchedType,
|
||||
{
|
||||
T::rocblas_copy_batched(handle, n, x, incx, y, incy, batch_count)
|
||||
unsafe {
|
||||
T::rocblas_copy_batched(handle, n, x, incx, y, incy, batch_count)
|
||||
}
|
||||
}
|
||||
|
||||
/// Copy vectors in a strided batch
|
||||
|
||||
+29
-19
@@ -1914,7 +1914,9 @@ pub unsafe fn spr<T>(
|
||||
where
|
||||
T: SprType,
|
||||
{
|
||||
T::rocblas_spr(handle, uplo, n, alpha, x, incx, AP)
|
||||
unsafe {
|
||||
T::rocblas_spr(handle, uplo, n, alpha, x, incx, AP)
|
||||
}
|
||||
}
|
||||
|
||||
// Similar functions and traits for spr, spr2, syr, syr2
|
||||
@@ -1944,9 +1946,11 @@ pub unsafe fn hemm<T>(
|
||||
where
|
||||
T: HemmType,
|
||||
{
|
||||
T::rocblas_hemm(
|
||||
handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_hemm(
|
||||
handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// Hermitian rank-k update
|
||||
@@ -1973,7 +1977,9 @@ pub unsafe fn herk<T, R>(
|
||||
where
|
||||
T: HerkType<ScalarType = R>,
|
||||
{
|
||||
T::rocblas_herk(handle, uplo, transA, n, k, alpha, A, lda, beta, C, ldc)
|
||||
unsafe {
|
||||
T::rocblas_herk(handle, uplo, transA, n, k, alpha, A, lda, beta, C, ldc)
|
||||
}
|
||||
}
|
||||
|
||||
pub unsafe fn syr_batched<T>(
|
||||
@@ -1990,7 +1996,9 @@ pub unsafe fn syr_batched<T>(
|
||||
where
|
||||
T: SyrBatchedType,
|
||||
{
|
||||
T::rocblas_syr_batched(handle, uplo, n, alpha, x, incx, A, lda, batch_count)
|
||||
unsafe {
|
||||
T::rocblas_syr_batched(handle, uplo, n, alpha, x, incx, A, lda, batch_count)
|
||||
}
|
||||
}
|
||||
|
||||
/// Strided batched symmetric rank-1 update
|
||||
@@ -2010,19 +2018,21 @@ pub unsafe fn syr_strided_batched<T>(
|
||||
where
|
||||
T: SyrStridedBatchedType,
|
||||
{
|
||||
T::rocblas_syr_strided_batched(
|
||||
handle,
|
||||
uplo,
|
||||
n,
|
||||
alpha,
|
||||
x,
|
||||
incx,
|
||||
stride_x,
|
||||
A,
|
||||
lda,
|
||||
stride_A,
|
||||
batch_count,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_syr_strided_batched(
|
||||
handle,
|
||||
uplo,
|
||||
n,
|
||||
alpha,
|
||||
x,
|
||||
incx,
|
||||
stride_x,
|
||||
A,
|
||||
lda,
|
||||
stride_A,
|
||||
batch_count,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// Batched symmetric rank-2 update
|
||||
|
||||
+163
-143
@@ -57,9 +57,11 @@ pub unsafe fn gemm<T>(
|
||||
where
|
||||
T: GemmType,
|
||||
{
|
||||
T::rocblas_gemm(
|
||||
handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_gemm(
|
||||
handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// Batched matrix-matrix multiplication
|
||||
@@ -106,23 +108,25 @@ pub unsafe fn gemm_batched<T>(
|
||||
where
|
||||
T: GemmBatchedType,
|
||||
{
|
||||
T::rocblas_gemm_batched(
|
||||
handle,
|
||||
transa,
|
||||
transb,
|
||||
m,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
B,
|
||||
ldb,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
batch_count,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_gemm_batched(
|
||||
handle,
|
||||
transa,
|
||||
transb,
|
||||
m,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
B,
|
||||
ldb,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
batch_count,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// Strided batched matrix-matrix multiplication
|
||||
@@ -175,26 +179,28 @@ pub unsafe fn gemm_strided_batched<T>(
|
||||
where
|
||||
T: GemmStridedBatchedType,
|
||||
{
|
||||
T::rocblas_gemm_strided_batched(
|
||||
handle,
|
||||
transa,
|
||||
transb,
|
||||
m,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
stride_A,
|
||||
B,
|
||||
ldb,
|
||||
stride_B,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
stride_C,
|
||||
batch_count,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_gemm_strided_batched(
|
||||
handle,
|
||||
transa,
|
||||
transb,
|
||||
m,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
stride_A,
|
||||
B,
|
||||
ldb,
|
||||
stride_B,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
stride_C,
|
||||
batch_count,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// General matrix-matrix multiplication with extended precision
|
||||
@@ -2016,22 +2022,24 @@ pub unsafe fn hemm_batched<T>(
|
||||
where
|
||||
T: HemmBatchedType,
|
||||
{
|
||||
T::rocblas_hemm_batched(
|
||||
handle,
|
||||
side,
|
||||
uplo,
|
||||
m,
|
||||
n,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
B,
|
||||
ldb,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
batch_count,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_hemm_batched(
|
||||
handle,
|
||||
side,
|
||||
uplo,
|
||||
m,
|
||||
n,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
B,
|
||||
ldb,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
batch_count,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// Strided batched Hermitian matrix-matrix multiplication
|
||||
@@ -2057,25 +2065,27 @@ pub unsafe fn hemm_strided_batched<T>(
|
||||
where
|
||||
T: HemmStridedBatchedType,
|
||||
{
|
||||
T::rocblas_hemm_strided_batched(
|
||||
handle,
|
||||
side,
|
||||
uplo,
|
||||
m,
|
||||
n,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
stride_A,
|
||||
B,
|
||||
ldb,
|
||||
stride_B,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
stride_C,
|
||||
batch_count,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_hemm_strided_batched(
|
||||
handle,
|
||||
side,
|
||||
uplo,
|
||||
m,
|
||||
n,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
stride_A,
|
||||
B,
|
||||
ldb,
|
||||
stride_B,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
stride_C,
|
||||
batch_count,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// Batched Hermitian rank-k update
|
||||
@@ -2096,20 +2106,22 @@ pub unsafe fn herk_batched<T, R>(
|
||||
where
|
||||
T: HerkBatchedType<ScalarType = R>,
|
||||
{
|
||||
T::rocblas_herk_batched(
|
||||
handle,
|
||||
uplo,
|
||||
transA,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
batch_count,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_herk_batched(
|
||||
handle,
|
||||
uplo,
|
||||
transA,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
batch_count,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// Strided batched Hermitian rank-k update
|
||||
@@ -2132,22 +2144,24 @@ pub unsafe fn herk_strided_batched<T, R>(
|
||||
where
|
||||
T: HerkStridedBatchedType<ScalarType = R>,
|
||||
{
|
||||
T::rocblas_herk_strided_batched(
|
||||
handle,
|
||||
uplo,
|
||||
transA,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
stride_A,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
stride_C,
|
||||
batch_count,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_herk_strided_batched(
|
||||
handle,
|
||||
uplo,
|
||||
transA,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
stride_A,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
stride_C,
|
||||
batch_count,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// Hermitian rank-k update with two matrices
|
||||
@@ -2190,9 +2204,11 @@ pub unsafe fn herkx<T, R>(
|
||||
where
|
||||
T: HerkxType<ScalarType = R>,
|
||||
{
|
||||
T::rocblas_herkx(
|
||||
handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_herkx(
|
||||
handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// Batched Hermitian rank-k update with two matrices
|
||||
@@ -2215,22 +2231,24 @@ pub unsafe fn herkx_batched<T, R>(
|
||||
where
|
||||
T: HerkxBatchedType<ScalarType = R>,
|
||||
{
|
||||
T::rocblas_herkx_batched(
|
||||
handle,
|
||||
uplo,
|
||||
trans,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
B,
|
||||
ldb,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
batch_count,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_herkx_batched(
|
||||
handle,
|
||||
uplo,
|
||||
trans,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
B,
|
||||
ldb,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
batch_count,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// Strided batched Hermitian rank-k update with two matrices
|
||||
@@ -2256,25 +2274,27 @@ pub unsafe fn herkx_strided_batched<T, R>(
|
||||
where
|
||||
T: HerkxStridedBatchedType<ScalarType = R>,
|
||||
{
|
||||
T::rocblas_herkx_strided_batched(
|
||||
handle,
|
||||
uplo,
|
||||
trans,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
stride_A,
|
||||
B,
|
||||
ldb,
|
||||
stride_B,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
stride_C,
|
||||
batch_count,
|
||||
)
|
||||
unsafe {
|
||||
T::rocblas_herkx_strided_batched(
|
||||
handle,
|
||||
uplo,
|
||||
trans,
|
||||
n,
|
||||
k,
|
||||
alpha,
|
||||
A,
|
||||
lda,
|
||||
stride_A,
|
||||
B,
|
||||
ldb,
|
||||
stride_B,
|
||||
beta,
|
||||
C,
|
||||
ldc,
|
||||
stride_C,
|
||||
batch_count,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// Trait for types that can be used with herkx
|
||||
|
||||
@@ -19,7 +19,7 @@ pub trait Generator {
|
||||
}
|
||||
|
||||
/// Set the ordering of the generator
|
||||
fn set_ordering(&mut self, ordering: u32) -> Result<()> {
|
||||
fn set_ordering(&mut self, ordering: bindings::rocrand_ordering) -> Result<()> {
|
||||
unsafe { Error::from_status(bindings::rocrand_set_ordering(self.as_ptr(), ordering)) }
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ impl PseudoRng {
|
||||
///
|
||||
/// let generator = PseudoRng::new(rng_type::XORWOW).unwrap();
|
||||
/// ```
|
||||
pub fn new(rng_type: u32) -> Result<Self> {
|
||||
pub fn new(rng_type: bindings::rocrand_rng_type) -> Result<Self> {
|
||||
let mut generator = ptr::null_mut();
|
||||
unsafe {
|
||||
Error::from_status(bindings::rocrand_create_generator(&mut generator, rng_type))?;
|
||||
@@ -67,7 +67,7 @@ impl PseudoRng {
|
||||
}
|
||||
|
||||
/// Create a new host-side pseudorandom number generator of the specified type.
|
||||
pub fn new_host(rng_type: u32) -> Result<Self> {
|
||||
pub fn new_host(rng_type: bindings::rocrand_rng_type) -> Result<Self> {
|
||||
let mut generator = ptr::null_mut();
|
||||
unsafe {
|
||||
Error::from_status(bindings::rocrand_create_generator_host(
|
||||
@@ -315,7 +315,7 @@ pub struct QuasiRng {
|
||||
|
||||
impl QuasiRng {
|
||||
/// Create a new quasirandom number generator of the specified type.
|
||||
pub fn new(rng_type: u32) -> Result<Self> {
|
||||
pub fn new(rng_type: bindings::rocrand_rng_type) -> Result<Self> {
|
||||
let mut generator = ptr::null_mut();
|
||||
unsafe {
|
||||
Error::from_status(bindings::rocrand_create_generator(&mut generator, rng_type))?;
|
||||
|
||||
+43
-30
@@ -19,53 +19,66 @@ pub use generator::{Generator, PseudoRng, QuasiRng};
|
||||
|
||||
/// Convenient re-exports of random number generator types
|
||||
pub mod rng_type {
|
||||
use super::bindings;
|
||||
use super::bindings::{self, rocrand_rng_type};
|
||||
|
||||
pub const PSEUDO_DEFAULT: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_DEFAULT;
|
||||
pub const XORWOW: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_XORWOW;
|
||||
pub const MRG32K3A: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_MRG32K3A;
|
||||
pub const MTGP32: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_MTGP32;
|
||||
pub const PHILOX4_32_10: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_PHILOX4_32_10;
|
||||
pub const MRG31K3P: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_MRG31K3P;
|
||||
pub const LFSR113: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_LFSR113;
|
||||
pub const MT19937: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_MT19937;
|
||||
pub const THREEFRY2_32_20: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY2_32_20;
|
||||
pub const THREEFRY2_64_20: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY2_64_20;
|
||||
pub const THREEFRY4_32_20: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY4_32_20;
|
||||
pub const THREEFRY4_64_20: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY4_64_20;
|
||||
pub const PSEUDO_DEFAULT: rocrand_rng_type =
|
||||
bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_DEFAULT;
|
||||
pub const XORWOW: rocrand_rng_type = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_XORWOW;
|
||||
pub const MRG32K3A: rocrand_rng_type = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_MRG32K3A;
|
||||
pub const MTGP32: rocrand_rng_type = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_MTGP32;
|
||||
pub const PHILOX4_32_10: rocrand_rng_type =
|
||||
bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_PHILOX4_32_10;
|
||||
pub const MRG31K3P: rocrand_rng_type = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_MRG31K3P;
|
||||
pub const LFSR113: rocrand_rng_type = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_LFSR113;
|
||||
pub const MT19937: rocrand_rng_type = bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_MT19937;
|
||||
pub const THREEFRY2_32_20: rocrand_rng_type =
|
||||
bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY2_32_20;
|
||||
pub const THREEFRY2_64_20: rocrand_rng_type =
|
||||
bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY2_64_20;
|
||||
pub const THREEFRY4_32_20: rocrand_rng_type =
|
||||
bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY4_32_20;
|
||||
pub const THREEFRY4_64_20: rocrand_rng_type =
|
||||
bindings::rocrand_rng_type_ROCRAND_RNG_PSEUDO_THREEFRY4_64_20;
|
||||
|
||||
pub const QUASI_DEFAULT: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_QUASI_DEFAULT;
|
||||
pub const SOBOL32: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_QUASI_SOBOL32;
|
||||
pub const SCRAMBLED_SOBOL32: u32 =
|
||||
pub const QUASI_DEFAULT: rocrand_rng_type =
|
||||
bindings::rocrand_rng_type_ROCRAND_RNG_QUASI_DEFAULT;
|
||||
pub const SOBOL32: rocrand_rng_type = bindings::rocrand_rng_type_ROCRAND_RNG_QUASI_SOBOL32;
|
||||
pub const SCRAMBLED_SOBOL32: rocrand_rng_type =
|
||||
bindings::rocrand_rng_type_ROCRAND_RNG_QUASI_SCRAMBLED_SOBOL32;
|
||||
pub const SOBOL64: u32 = bindings::rocrand_rng_type_ROCRAND_RNG_QUASI_SOBOL64;
|
||||
pub const SCRAMBLED_SOBOL64: u32 =
|
||||
pub const SOBOL64: rocrand_rng_type = bindings::rocrand_rng_type_ROCRAND_RNG_QUASI_SOBOL64;
|
||||
pub const SCRAMBLED_SOBOL64: rocrand_rng_type =
|
||||
bindings::rocrand_rng_type_ROCRAND_RNG_QUASI_SCRAMBLED_SOBOL64;
|
||||
}
|
||||
|
||||
/// Convenient re-exports of ordering constants
|
||||
pub mod ordering {
|
||||
use super::bindings;
|
||||
use super::bindings::{self, rocrand_ordering};
|
||||
|
||||
pub const PSEUDO_BEST: u32 = bindings::rocrand_ordering_ROCRAND_ORDERING_PSEUDO_BEST;
|
||||
pub const PSEUDO_DEFAULT: u32 = bindings::rocrand_ordering_ROCRAND_ORDERING_PSEUDO_DEFAULT;
|
||||
pub const PSEUDO_SEEDED: u32 = bindings::rocrand_ordering_ROCRAND_ORDERING_PSEUDO_SEEDED;
|
||||
pub const PSEUDO_LEGACY: u32 = bindings::rocrand_ordering_ROCRAND_ORDERING_PSEUDO_LEGACY;
|
||||
pub const PSEUDO_DYNAMIC: u32 = bindings::rocrand_ordering_ROCRAND_ORDERING_PSEUDO_DYNAMIC;
|
||||
pub const QUASI_DEFAULT: u32 = bindings::rocrand_ordering_ROCRAND_ORDERING_QUASI_DEFAULT;
|
||||
pub const PSEUDO_BEST: rocrand_ordering =
|
||||
bindings::rocrand_ordering_ROCRAND_ORDERING_PSEUDO_BEST;
|
||||
pub const PSEUDO_DEFAULT: rocrand_ordering =
|
||||
bindings::rocrand_ordering_ROCRAND_ORDERING_PSEUDO_DEFAULT;
|
||||
pub const PSEUDO_SEEDED: rocrand_ordering =
|
||||
bindings::rocrand_ordering_ROCRAND_ORDERING_PSEUDO_SEEDED;
|
||||
pub const PSEUDO_LEGACY: rocrand_ordering =
|
||||
bindings::rocrand_ordering_ROCRAND_ORDERING_PSEUDO_LEGACY;
|
||||
pub const PSEUDO_DYNAMIC: rocrand_ordering =
|
||||
bindings::rocrand_ordering_ROCRAND_ORDERING_PSEUDO_DYNAMIC;
|
||||
pub const QUASI_DEFAULT: rocrand_ordering =
|
||||
bindings::rocrand_ordering_ROCRAND_ORDERING_QUASI_DEFAULT;
|
||||
}
|
||||
|
||||
/// Re-export direction vector constants
|
||||
pub mod direction_vector_set {
|
||||
use super::bindings;
|
||||
use super::bindings::{self, rocrand_direction_vector_set};
|
||||
|
||||
pub const VECTORS_32_JOEKUO6: u32 =
|
||||
pub const VECTORS_32_JOEKUO6: rocrand_direction_vector_set =
|
||||
bindings::rocrand_direction_vector_set_ROCRAND_DIRECTION_VECTORS_32_JOEKUO6;
|
||||
pub const SCRAMBLED_VECTORS_32_JOEKUO6: u32 =
|
||||
pub const SCRAMBLED_VECTORS_32_JOEKUO6: rocrand_direction_vector_set =
|
||||
bindings::rocrand_direction_vector_set_ROCRAND_SCRAMBLED_DIRECTION_VECTORS_32_JOEKUO6;
|
||||
pub const VECTORS_64_JOEKUO6: u32 =
|
||||
pub const VECTORS_64_JOEKUO6: rocrand_direction_vector_set =
|
||||
bindings::rocrand_direction_vector_set_ROCRAND_DIRECTION_VECTORS_64_JOEKUO6;
|
||||
pub const SCRAMBLED_VECTORS_64_JOEKUO6: u32 =
|
||||
pub const SCRAMBLED_VECTORS_64_JOEKUO6: rocrand_direction_vector_set =
|
||||
bindings::rocrand_direction_vector_set_ROCRAND_SCRAMBLED_DIRECTION_VECTORS_64_JOEKUO6;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user