# random.c File Reference

`#include "magick/studio.h"`
`#include "magick/exception.h"`
`#include "magick/exception-private.h"`
`#include "magick/memory_.h"`
`#include "magick/semaphore.h"`
`#include "magick/random_.h"`
`#include "magick/resource_.h"`
`#include "magick/signature.h"`
`#include "magick/string_.h"`
`#include "magick/utility.h"`

## Data Structures

struct | _RandomInfo

## Typedefs

typedef struct _RandomInfo | RandomInfo

## Functions

static void | InitializeRandomReservoir (void)
MagickExport void | DestroyRandomReservoir (void)
MagickExport void | DistillRandomEvent (const unsigned char *event, const size_t length)
MagickExport void | GetRandomKey (unsigned char *key, const size_t length)
MagickExport double | GetRandomValue (void)
MagickExport void | SeedRandomReservoir (const unsigned long seed)

## Variables

static RandomInfo | random_info = { ~0U, ~0U, ~0U, ~0U }
static SemaphoreInfo * | random_semaphore = (SemaphoreInfo *) NULL
static SignatureInfo * | reservoir = (SignatureInfo *) NULL
static unsigned long * | roulette = (unsigned long *) NULL

## Typedef Documentation

typedef struct _RandomInfo RandomInfo

## Function Documentation

MagickExport void DestroyRandomReservoir | ( | void |  | ) |

MagickExport void DistillRandomEvent | ( | const unsigned char * | event,
|  | const size_t | length |
| ) |  |  |

MagickExport void GetRandomKey | ( | unsigned char * | key,
|  | const size_t | length |
| ) |  |  |

MagickExport double GetRandomValue | ( | void |  | ) |

static void InitializeRandomReservoir | ( | void |  | ) | `[static]`

MagickExport void SeedRandomReservoir | ( | const unsigned long | seed | ) |

## Variable Documentation

RandomInfo random_info = { ~0U, ~0U, ~0U, ~0U }`[static]`

SemaphoreInfo* random_semaphore = (SemaphoreInfo *) NULL`[static]`

SignatureInfo* reservoir = (SignatureInfo *) NULL`[static]`

unsigned long* roulette = (unsigned long *) NULL`[static]`