# CopyStreamState

Creates a copy of a random stream state.

## Syntax

Fortran:

status = vslcopystreamstate( deststream, srcstream )

C:

status = vslCopyStreamState( deststream, srcstream );

## Description

The function copies a stream state from srcstream to the existing deststream stream. Both the streams should be generated by the same basic generator. En error message is generated when the index of the BRNG that produced deststream stream differs from the index of the BRNG that generated srcstream stream.

Unlike CopyStream function, which creates a new stream and copies both the stream state and other data from srcstream, the function CopyStreamState copies only srcstream stream state data to the generated deststream stream.

## Input Parameters

Name | Type | Description
--- | --- | ---
srcstream | FORTRAN: TYPE(VSL_STREAM_STATE), INTENT(IN) C: VSLStreamStatePtr | FORTRAN: Descriptor of the destination stream where the state of scrstream stream is copied C: Pointer to the stream state structure, from which the state structure is copied

## Output Parameters

Name | Type | Description
--- | --- | ---
deststream | FORTRAN: TYPE(VSL_STREAM_STATE), INTENT(OUT) C: VSLStreamStatePtr | FORTRAN: Descriptor of the stream with the state to be copied C: Pointer to the stream state structure where the stream state is copied

## Return Values

VSL_ERROR_OK, VSL_STATUS_OK
  Indicates no error, execution is successful.
VSL_ERROR_NULL_PTR
  Either srcstream or deststream is a NULL pointer.
VSL_ERROR_BAD_STREAM

  Either srcstream or deststream is not a valid random stream.

VSL_ERROR_BRNGS_INCOMPATIBLE

  BRNG associated with srcstream is not compatible with BRNG associated with deststream.

Parent topic: Service Routines