Generate a single-precision floating-point Vandermonde matrix.
var svander = require( '@stdlib/blas/ext/base/svander' );Generates a single-precision floating-point Vandermonde matrix.
var Float32Array = require( '@stdlib/array/float32' );
var x = new Float32Array( [ 1.0, 2.0, 3.0 ] );
var out = new Float32Array( 9 );
svander( 'row-major', -1, 3, 3, x, 1, out, 3 );
// out => <Float32Array>[ 1.0, 1.0, 1.0, 4.0, 2.0, 1.0, 9.0, 3.0, 1.0 ]The function has the following parameters:
- order: row-major (C-style) or column-major (Fortran-style) order.
- mode: mode. If
mode < 0, the function generates decreasing powers. Ifmode > 0, the function generates increasing powers. - M: number of rows in
outand number of indexed elements inx. - N: number of columns in
out. - x: input
Float32Array. - strideX: stride length for
x. - out: output matrix stored in linear memory as a
Float32Array. - ldo: stride of the first dimension of
out(a.k.a., leading dimension of the matrixout).
Generates a single-precision floating-point Vandermonde matrix using alternative indexing semantics.
var Float32Array = require( '@stdlib/array/float32' );
var x = new Float32Array( [ 1.0, 2.0, 3.0 ] );
var out = new Float32Array( 9 );
svander.ndarray( -1, 3, 3, x, 1, 0, out, 3, 1, 0 );
// out => <Float32Array>[ 1.0, 1.0, 1.0, 4.0, 2.0, 1.0, 9.0, 3.0, 1.0 ]The function has the following additional parameters:
- offsetX: starting index for
x. - strideOut1: stride length for the first dimension of
out. - strideOut2: stride length for the second dimension of
out. - offsetOut: starting index for
out.
While typed array views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on starting indices. For example,
var Float32Array = require( '@stdlib/array/float32' );
var x = new Float32Array( [ 0.0, 1.0, 2.0, 3.0 ] );
var out = new Float32Array( 9 );
svander.ndarray( -1, 3, 3, x, 1, 1, out, 3, 1, 0 );
// out => <Float32Array>[ 1.0, 1.0, 1.0, 4.0, 2.0, 1.0, 9.0, 3.0, 1.0 ]- If
M <= 0orN <= 0, both functions returnoutunchanged.
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var Float32Array = require( '@stdlib/array/float32' );
var svander = require( '@stdlib/blas/ext/base/svander' );
var M = 3;
var N = 4;
var x = discreteUniform( M, 0, 10, {
'dtype': 'float32'
});
var out = new Float32Array( M*N );
svander( 'row-major', -1, M, N, x, 1, out, N );
console.log( out );
out = new Float32Array( M*N );
svander.ndarray( -1, M, N, x, 1, 0, out, N, 1, 0 );
console.log( out );#include "stdlib/blas/ext/base/svander.h"Generates a single-precision floating-point Vandermonde matrix.
#include "stdlib/blas/base/shared.h"
const float x[ 3 ] = { 1.0f, 2.0f, 3.0f };
float Out[ 3*3 ] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
stdlib_strided_svander( CblasRowMajor, -1.0f, 3, 3, x, 1, Out, 3 );The function accepts the following arguments:
- order:
[in] CBLAS_LAYOUTstorage layout. - mode:
[in] floatmode. Ifmode < 0, the function generates decreasing powers. Ifmode > 0, the function generates increasing powers. - M:
[in] CBLAS_INTnumber of rows inOutand number of indexed elements inX. - N:
[in] CBLAS_INTnumber of columns inOut. - X:
[in] float*input array. - strideX:
[in] CBLAS_INTstride length forX. - Out:
[out] float*output matrix. - LDO:
[in] CBLAS_INTstride of the first dimension ofOut(a.k.a., leading dimension of the matrixOut).
void API_SUFFIX(stdlib_strided_svander)( const CBLAS_LAYOUT order, const float mode, const CBLAS_INT M, const CBLAS_INT N, const float *X, const CBLAS_INT strideX, float *Out, const CBLAS_INT LDO );stdlib_strided_svander_ndarray( mode, M, N, *X, strideX, offsetX, *Out, strideOut1, strideOut2, offsetOut )
Generates a single-precision floating-point Vandermonde matrix using alternative indexing semantics.
#include "stdlib/blas/base/shared.h"
const float x[ 3 ] = { 1.0f, 2.0f, 3.0f };
float Out[ 3*3 ] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
stdlib_strided_svander_ndarray( -1.0f, 3, 3, x, 1, 0, Out, 3, 1, 0 );The function accepts the following arguments:
- mode:
[in] floatmode. Ifmode < 0, the function generates decreasing powers. Ifmode > 0, the function generates increasing powers. - M:
[in] CBLAS_INTnumber of rows inOutand number of indexed elements inX. - N:
[in] CBLAS_INTnumber of columns inOut. - X:
[in] float*input array. - strideX:
[in] CBLAS_INTstride length forX. - offsetX:
[in] CBLAS_INTstarting index forX. - Out:
[out] float*output matrix. - strideOut1:
[in] CBLAS_INTstride length for the first dimension ofOut. - strideOut2:
[in] CBLAS_INTstride length for the second dimension ofOut. - offsetOut:
[in] CBLAS_INTstarting index forOut.
void API_SUFFIX(stdlib_strided_svander_ndarray)( const float mode, const CBLAS_INT M, const CBLAS_INT N, const float *X, const CBLAS_INT strideX, const CBLAS_INT offsetX, float *Out, const CBLAS_INT strideOut1, const CBLAS_INT strideOut2, const CBLAS_INT offsetOut );#include "stdlib/blas/ext/base/svander.h"
#include "stdlib/blas/base/shared.h"
#include <stdio.h>
int main( void ) {
// Define the input array:
const float x[ 3 ] = { 1.0f, 2.0f, 3.0f };
// Define a 3x3 output array stored in row-major order:
float Out[ 3*3 ] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
// Specify the number of rows and columns:
const int M = 3;
const int N = 3;
// Perform operation:
stdlib_strided_svander( CblasRowMajor, -1.0f, M, N, x, 1, Out, N );
// Print the result:
for ( int i = 0; i < M; i++ ) {
for ( int j = 0; j < N; j++ ) {
printf( "Out[%i,%i] = %f\n", i, j, Out[ (i*N)+j ] );
}
}
}