BLAS vectors come in single- and double-precision, real and complex flavors:
float-blas-vector

double-blas-vector

complex-float-blas-vector

complex-double-blas-vector


These vector types all follow the sequence protocol. In addition, there are corresponding types for matrix data:
float-blas-matrix

double-blas-matrix

complex-float-blas-matrix

complex-double-blas-matrix


There are BOA constructors for all vector and matrix types, which provide the most flexibility in specifying memory layout:
<float-blas-vector> ( underlying length inc -- vector )

<double-blas-vector> ( underlying length inc -- vector )

<complex-float-blas-vector> ( underlying length inc -- vector )

<complex-double-blas-vector> ( underlying length inc -- vector )

<float-blas-matrix> ( underlying ld rows cols transpose -- matrix )

<double-blas-matrix> ( underlying ld rows cols transpose -- matrix )

<complex-float-blas-matrix> ( underlying ld rows cols transpose -- matrix )

<complex-double-blas-matrix> ( underlying ld rows cols transpose -- matrix )


For the simple case of creating a dense, zero-filled vector or matrix, simple empty object constructors are provided:
<empty-vector> ( length exemplar -- vector )

<empty-matrix> ( rows cols exemplar -- matrix )


BLAS vectors and matrices can also be constructed from other Factor sequences:
>float-blas-vector ( seq -- v )

>double-blas-vector ( seq -- v )

>complex-float-blas-vector ( seq -- v )

>complex-double-blas-vector ( seq -- v )

>float-blas-matrix ( arrays -- matrix )

>double-blas-matrix ( arrays -- matrix )

>complex-float-blas-matrix ( arrays -- matrix )

>complex-double-blas-matrix ( arrays -- matrix )