stdlib-js / stdlib

✨ Standard library for JavaScript and Node.js. ✨
https://stdlib.io
Apache License 2.0
4.14k stars 402 forks source link

[RFC]: Add BLAS bindings and implementations for linear algebra (tracking issue) #2039

Open aman-095 opened 3 months ago

aman-095 commented 3 months ago

Description

This RFC proposes adding BLAS routines. The purpose of this issue is to serve as a tracking issue for adding BLAS routines.

Implementation Status for BLAS Routines

Level 1

Single Precision

Double Precision

Complex Single

Complex Double

Level 2

Single Precision

Double Precision

Complex Single

Complex Double

Level 3

Single Precision

Double Precision

Complex Single

Complex Double

Related Issues

None.

Questions

No.

Other

No.

Checklist

performant23 commented 3 months ago

Hello, thanks @aman-095 for adding this tracker. So, I just wanted to let you know that I am working on ZSWAP just so we don't end up working on the same package :)

Apologies for not adding an issue for the same earlier, thanks!

aman-095 commented 2 months ago

Working on idamax and isamax level 1 routines. 

performant23 commented 2 months ago

Working on csscal (L1)

kgryte commented 2 months ago

@performant23 That one is already being worked on in https://github.com/stdlib-js/stdlib/pull/2104.

kgryte commented 2 months ago

@performant23 Maybe try dznrm2?

performant23 commented 2 months ago

Oh, hey! I think csscal is different right? In cscal we have a complex scalar and in csscal we have a real scalar if I remember correctly.

kgryte commented 2 months ago

Ah, you're right. That one should be straightforward.

performant23 commented 2 months ago

Hi @kgryte, we would need a generic interface to perform Givens rotation with vectors of other data types like integers, right? If so, I'd like to work on such an interface i.e. grot to get an idea of how generic g* interfaces are sampled from their equivalent d* implementations and also since we have implementations for those available for this package (JS implementation for drot is reviewed), this should be good to go!

aman-095 commented 2 months ago

Working on Level 1 routine drotm

kgryte commented 2 months ago

@performant23 Yes, go for it. The one thing you need to do is ensure accessor array support. See gcopy and gswap for an idea.