
{{alias}}( order, N, x, strideX, out, LDO )
    Computes the Cartesian square for a strided array.

    Pairs are stored as rows in the output matrix, where the first column
    contains the first element of each pair and the second column contains
    the second element.

    The `N` and stride parameters determine which elements in the strided arrays
    are accessed at runtime.

    If `N <= 0`, the function returns `out` unchanged.

    The function supports array-like objects having getter and setter accessors
    for array element access.

    Parameters
    ----------
    order: string
        Row-major (C-style) or column-major (Fortran-style) order.

    N: integer
        Number of indexed elements.

    x: ArrayLikeObject
        Input array.

    strideX: integer
        Stride length for `x`.

    out: ArrayLikeObject
        Output array.

    LDO: integer
        Stride length between successive contiguous vectors of the matrix `out`
        (a.k.a., leading dimension of `out`).

    Returns
    -------
    out: ArrayLikeObject
        Output array.

    Examples
    --------
    // Standard Usage:
    > var x = [ 1.0, 2.0 ];
    > var out = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ];
    > {{alias}}( 'row-major', x.length, x, 1, out, 2 )
    [ 1.0, 1.0, 1.0, 2.0, 2.0, 1.0, 2.0, 2.0 ]

    // Using `N` and stride parameters:
    > x = [ 1.0, 0.0, 2.0, 0.0 ];
    > out = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ];
    > {{alias}}( 'row-major', 2, x, 2, out, 2 )
    [ 1.0, 1.0, 1.0, 2.0, 2.0, 1.0, 2.0, 2.0 ]

    // Using view offsets:
    > var x0 = new {{alias:@stdlib/array/float64}}( [ 0.0, 1.0, 2.0, 3.0 ] );
    > var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
    > out = new {{alias:@stdlib/array/float64}}( 8 );
    > {{alias}}( 'row-major', 2, x1, 1, out, 2 )
    <Float64Array>[ 1.0, 1.0, 1.0, 2.0, 2.0, 1.0, 2.0, 2.0 ]


{{alias}}.ndarray( N, x, sx, ox, out, so1, so2, oo )
    Computes the Cartesian square for a strided array using alternative indexing
    semantics.

    Pairs are stored as rows in the output matrix, where the first column
    contains the first element of each pair and the second column contains
    the second element.

    While typed array views mandate a view offset based on the underlying
    buffer, the offset parameters support indexing semantics based on starting
    indices.

    The function supports array-like objects having getter and setter accessors
    for array element access.

    Parameters
    ----------
    N: integer
        Number of indexed elements.

    x: ArrayLikeObject
        Input array.

    sx: integer
        Stride length for `x`.

    ox: integer
        Starting index for `x`.

    out: ArrayLikeObject
        Output array.

    so1: integer
        Stride length for the first dimension of `out`.

    so2: integer
        Stride length for the second dimension of `out`.

    oo: integer
        Starting index for `out`.

    Returns
    -------
    out: ArrayLikeObject
        Output array.

    Examples
    --------
    // Standard Usage:
    > var x = [ 1.0, 2.0 ];
    > var out = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ];
    > {{alias}}.ndarray( x.length, x, 1, 0, out, 2, 1, 0 )
    [ 1.0, 1.0, 1.0, 2.0, 2.0, 1.0, 2.0, 2.0 ]

    // Using an index offset:
    > x = [ 0.0, 1.0, 2.0, 3.0 ];
    > out = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ];
    > {{alias}}.ndarray( 2, x, 1, 1, out, 2, 1, 0 )
    [ 1.0, 1.0, 1.0, 2.0, 2.0, 1.0, 2.0, 2.0 ]

    See Also
    --------

