BLAS Level 1 operations for complex-valued ndarrays
This library implements the basic vector operations of the Level 1 Basic Linear Algebra Subprograms (BLAS). Many of these functions are also implemented in ndarray-ops—which also has functions that are not included in BLAS. So the right answer is probably some blend of the two. This library exists mainly to frame things in a relatively standard, coherent framework.
NB: This library performs no checks to ensure you're only passing one-dimensional vectors. That's either a bug or a feature, depending on how you think about it.
||Swap the elements of x and y|
||Multiple vector x by scalar alpha|
||Copy x into y|
||Multiple x by alpha and add it to y|
||Multiply x by alpha and assign it to y|
||Calculate the product transpose(x) * y.|
||Calculate the product conj(x) * y.|
||Calculate the 2-norm of x|
||Calculate the 1-norm of x|
||Not yet implemented|
A note on working with complex ndarrays
here are two methods:
- Store the real and imaginary components in multiple arrays:
var a_r =a_i = ;
- Interleave the real and imaginary components:
var a =a_r = aa_i = a;
In this example, there's an additional final dimension of the array. This applies to vectors, matrices, and higher-dimensional arrays.
I won't comment on the relative effiency of each method.
Usage should be pretty straightforward. There aren't really any options or variations.
var cblas1 = ;var x = ;var y = ;var x_r = xx_i = xy_r = yy_i = y;cblas1;
(c) 2015 Ricky Reusser. MIT License