Rate This Document
Findability
Accuracy
Completeness
Readability

RandUniform

Generates a uniformly distributed random sequence that has a given mean value and standard deviation.

The function interface declaration is as follows:

  • Initialization:

    HmppResult HMPPS_RandUniformInit_8u(HmppsRandUniformPolicy_8u** policy, uint8_t low, uint8_t high, uint32_t seed);

    HmppResult HMPPS_RandUniformInit_16s(HmppsRandUniformPolicy_16s** policy, int16_t low, int16_t high, uint32_t seed);

    HmppResult HMPPS_RandUniformInit_32f(HmppsRandUniformPolicy_32f** policy, float low, float high, uint32_t seed);

    HmppResult HMPPS_RandUniformInit_64f(HmppsRandUniformPolicy_64f** policy, double low, double high, uint32_t seed);

  • Main functions:

    HmppResult HMPPS_RandUniform_8u(uint8_t* dst, int32_t len, HmppsRandUniformPolicy_8u* policy);

    HmppResult HMPPS_RandUniform_16s(int16_t* dst, int32_t len, HmppsRandUniformPolicy_16s* policy);

    HmppResult HMPPS_RandUniform_32f(float* dst, int32_t len, HmppsRandUniformPolicy_32f* policy);

    HmppResult HMPPS_RandUniform_64f(double* dst, int32_t len, HmppsRandUniformPolicy_64f* policy);

  • Memory release:

    HmppResult HMPPS_RandUniformRelease_8u(HmppsRandGaussPolicy_8u* policy);

    HmppResult HMPPS_ RandUniformRelease_16s(HmppsRandGaussPolicy_16s* policy);

    HmppResult HMPPS_ RandUniformRelease_32f(HmppsRandGaussPolicy_32f* policy);

    HmppResult HMPPS_ RandUniformRelease_64f(HmppsRandGaussPolicy_64f* policy);

Parameters

Parameter

Description

Value Range

Input/Output

dst

Pointer to the destination vector

The value cannot be NULL.

Output

len

Vector length

(0, INT_MAX]

Input

low

Minimum value

Depending on the data type

Input

high

Maximum value

Depending on the data type

Input

seed

Random number seed

Depending on the data type

Input

policy

Parameter structure for generating a random sequence

The value cannot be NULL.

Input/Output

Return Value

  • Success: HMPP_STS_NO_ERR
  • Failure: An error code is returned.

Error Codes

Error Code

Description

HMPP_STS_NULL_PTR_ERR

The value of dst is NULL.

HMPP_STS_SIZE_ERR

The value of len is less than or equal to 0.

HMPP_STS_MALLOC_FAILED

Failed to allocate the required extra memory.

Example

#define BUFFER_SIZE_T 10

int main()
{
    float dst[BUFFER_SIZE_T];
    int32_t i;
    float low = 1.0;
    float high = 1000.0;
    float seed = 0;
    HmppsRandUniformPolicy_32f *policy = NULL;

    HmppResult result;
    result = HMPPS_RandUniformInit_32f(&policy, low, high, seed);
    if (result != HMPP_STS_NO_ERR)
    {
        return;
    }
    result = HMPPS_RandUniform_32f(dst, BUFFER_SIZE_T, policy);
    printf("result = %d \ndst =", result);
    for (i = 0; i < BUFFER_SIZE_T; i++) {
        printf(" %f  ", dst[i]);
    }

    HMPPS_RandUniformRelease_32f(policy);

    return 0;
}

Output:

result = 0
dst = 171.657196   750.152100   97.275284   870.594727   577.726196   786.013489   692.501953   369.397522   874.030151   745.349976