Thanks.
Currently neither. I have in mind to add some LAPACK bindings (singular
value decomposition, eigenvalue decomposition, least squares to begin
with). First full native floating point support needs to be implemented.
Here is an example of a matrix vector product:
(use-modules (aiscm sequence) (aiscm expression) (aiscm tensor))
(tensor i (sum k (* (get (arr (2 3) (5 7)) i k) (get (arr 11 13) k))))
$3 = #<sequence<int<8,unsigned>>>:
(87 124)
Floating point values currently fall back on Scheme objects:
(tensor i (sum k (* (get (arr (2 3) (5 7)) i k) (get (arr 1.1 1.3)
k))))
$4 = #<sequence<obj>>:
(8.7 12.4)
Note that in this case the array loops are still JIT compiled. Addition
and multiplication are handled by JIT compiling callbacks into GNU Guile
(scm_plus, scm_product).
Regards
Jan
On Thu, 3 Aug 2017, Nala Ginrut wrote:
Nice work!
Do you use BLAS or MKL for vector operation?
2017年8月3日 04:16,"Jan Wedekind" <address@hidden>写道:
Hi,
I have released a new version of AIscm [1]. A Guile extension for
numerical arrays and tensors. It now supports convolutions [2] and tensor
operations [3]. There are packages for different versions of Debian and
Ubuntu. Also thanks to Andrey Rahmatullin's sponsorship, the package is
part of Debian Testing [4].
Regards
Jan
[1] http://wedesoft.github.io/aiscm/
[2] http://wedesoft.github.io/aiscm/convolution.html
[3] http://wedesoft.github.io/aiscm/operation.html#tensor-operations
[4] https://tracker.debian.org/pkg/aiscm