Rate This Document
Findability
Accuracy
Completeness
Readability

Function for Creating a Random Number Stream

Initialize the stream structure and set the random number seed.

Interface Definition

int vslNewStream(VSLStreamStatePtr *stream, const int brng, const unsigned seed);

Parameters

Parameter

Type

Description

Input/Output

stream

Pointer of the VSLStreamStatePtr type

Pointer to the random number stream structure.

Output

brng

int

Random number generator type.

  • VSL_BRNG_MCG31: 31-bit multiplicative congruential generator.
  • VSL_BRNG_MRG32K3A: combined multiple recursive generator with two third-order components.
  • VSL_BRNG_MCG59: 59-bit multiplicative congruential generator.
  • VSL_BRNG_SOBOL: Sobol low-discrepancy sequence generator.
  • VSL_BRNG_MT19937: MT19937 generator.
  • VSL_BRNG_PHILOX4X32X10: Philox4x32-10 generator.
  • VSL_BRNG_RNDR: RNDR generator.
  • VSL_BRNG_RNDRRS: RNDRRS generator.
  • VSL_BRNG_ARS5: ARS5 generator.
  • VSL_BRNG_MT2203: MT2203 generator.

Input

seed

unsigned

Random number seed, which must be a non-negative integer.

Input

Dependencies

#include "krng.h"

Examples

#include <stdio.h>
#include <stdlib.h>
#include "krng.h"
int main()
{
   /* initialize stream with given BRNG type and seed */
    VSLStreamStatePtr stream;
    unsigned seed = 42;
    int errcode = vslNewStream(&stream, VSL_BRNG_MCG59, seed);
    if (errcode != VSL_STATUS_OK) {
        fprintf(stderr, "Failure in newstream\n");
        return 0;
    }

    /* deinitialize the stream */
    errcode = vslDeleteStream(&stream);
    if (errcode != VSL_STATUS_OK) {
        fprintf(stderr, "Failure in deleting stream\n");
        return 0;
    }
    return 0;
}