Rate This Document
Findability
Accuracy
Completeness
Readability

v?logb

Compute the element-wise exponent of input vector x and return the result as a floating point number.

Interface Definition

C interface:

void vslogb(const int len, const float* src, float* dst);

void vdlogb(const int len, const double* src, double* dst);

Parameters

Parameter

Type

Description

Input/Output

len

Integer

Number of elements in the input vector.

If len ≤ 0, the system displays a message indicating that the value of len is invalid.

Input

src

  • Single-precision floating-point type for vslogb
  • Double-precision floating-point type for vdlogb

Input vector src with length len.

If the pointer is null, the system prompts a null pointer error.

Input

dst

  • Single-precision floating-point type for vslogb
  • Double-precision floating-point type for vdlogb

Output vector dst with length len.

If the pointer is null, the system prompts a null pointer error.

Output

Return Value

  • Each operation value returns its floating-point exponent value y. For vslogb, y ∈ [-149, 127]. For vdlogb, y ∈ [-1074, 1023].
  • For other special values, see the following table.

    Input Value (src)

    Output Value (dst)

    ±inf

    +inf

    ±0

    -inf

    nan

    nan

Dependency

C: "kvml.h"

Example

C interface:

    #define N 4
    const float src[N] = {73.2f, 8.0f, +INFINITY, +0.0f};
    float dst[N] = {0};

    vslogb(N, src, dst);
    printFArr("input1:", N, src);
    printFArr("output:", N, dst);

    /** 
     *  input1:  73.200    8.000      inf    0.000
     *  output:   6.000    3.000      inf     -inf 
     * 
     */