Table of Contents

Class CuRandNative

Namespace
NVMathNet.Interop
Assembly
NVMath.Net.dll

Raw P/Invoke bindings for cuRAND.

public static class CuRandNative

Inheritance

Inherited Members

Methods

Check(CuRandStatus, string?)

Throws NVMathNet.Interop.CuRandException if status is not NVMathNet.Interop.CuRandStatus.Success.

public static void Check(CuRandStatus status, string? context = null)

Parameters

status CuRandStatus
context string?

CreateGenerator(CuRandRngType)

Creates a cuRAND generator.

public static nint CreateGenerator(CuRandRngType rngType = CuRandRngType.PseudoDefault)

Parameters

rngType CuRandRngType

Returns

nint

DestroyGenerator(nint)

Destroys a cuRAND generator.

public static void DestroyGenerator(nint generator)

Parameters

generator nint

Generate(nint, uint*, nuint)

Generates 32-bit unsigned integers.

public static void Generate(nint generator, uint* output, nuint count)

Parameters

generator nint
output uint*
count nuint

GenerateLogNormal(nint, float*, nuint, float, float)

Generates log-normally distributed single-precision floats.

public static void GenerateLogNormal(nint generator, float* output, nuint count, float mean, float stddev)

Parameters

generator nint
output float*
count nuint
mean float
stddev float

GenerateLogNormalDouble(nint, double*, nuint, double, double)

Generates log-normally distributed double-precision floats.

public static void GenerateLogNormalDouble(nint generator, double* output, nuint count, double mean, double stddev)

Parameters

generator nint
output double*
count nuint
mean double
stddev double

GenerateLongLong(nint, ulong*, nuint)

Generates 64-bit unsigned integers (64-bit quasirandom generators).

public static void GenerateLongLong(nint generator, ulong* output, nuint count)

Parameters

generator nint
output ulong*
count nuint

GenerateNormal(nint, float*, nuint, float, float)

Generates normally distributed single-precision floats.

public static void GenerateNormal(nint generator, float* output, nuint count, float mean, float stddev)

Parameters

generator nint
output float*
count nuint
mean float
stddev float

GenerateNormalDouble(nint, double*, nuint, double, double)

Generates normally distributed double-precision floats.

public static void GenerateNormalDouble(nint generator, double* output, nuint count, double mean, double stddev)

Parameters

generator nint
output double*
count nuint
mean double
stddev double

GeneratePoisson(nint, uint*, nuint, double)

Generates Poisson-distributed 32-bit unsigned integers.

public static void GeneratePoisson(nint generator, uint* output, nuint count, double lambda)

Parameters

generator nint
output uint*
count nuint
lambda double

GenerateUniform(nint, float*, nuint)

Generates uniformly distributed single-precision floats in (0,1].

public static void GenerateUniform(nint generator, float* output, nuint count)

Parameters

generator nint
output float*
count nuint

GenerateUniformDouble(nint, double*, nuint)

Generates uniformly distributed double-precision floats in (0,1].

public static void GenerateUniformDouble(nint generator, double* output, nuint count)

Parameters

generator nint
output double*
count nuint

SetOffset(nint, ulong)

Sets the offset for a generator.

public static void SetOffset(nint generator, ulong offset)

Parameters

generator nint
offset ulong

SetQuasiRandomGeneratorDimensions(nint, uint)

Sets the number of dimensions of a quasirandom generator.

public static void SetQuasiRandomGeneratorDimensions(nint generator, uint dimensions)

Parameters

generator nint
dimensions uint

SetSeed(nint, ulong)

Sets the seed for a pseudorandom generator.

public static void SetSeed(nint generator, ulong seed)

Parameters

generator nint
seed ulong

SetStream(nint, nint)

Associates a CUDA stream with the generator.

public static void SetStream(nint generator, nint stream)

Parameters

generator nint
stream nint