Skip to content

[Idea]: add BLAS bindings and implementations for linear algebra #36

Open
@kgryte

Description

@kgryte

Idea

BLAS routines are standard building blocks for performing basic vector and matrix operations. These building blocks are leveraged by most modern numerical programming languages and libraries, including NumPy, SciPy, Julia, MATLAB, R, and others.

The goal of this idea is to

  • reimplement reference BLAS routines in free-form Fortran 95
  • port reference BLAS routines to C
  • port reference BLAS routines to JavaScript
  • write Node.js bindings to allow calling BLAS routines in compiled C/ Fortran from JavaScript

Expected Outcomes

Users will be able to call BLAS routines from JavaScript. In web browsers, BLAS routines will be in JavaScript. In Node.js, provided native bindings have been compiled, BLAS routines will either be ported reference implementations or hardware optimized system libraries.

Involved Software

No other software is necessary apart from standard compilers (GCC, gfortran).

Prerequisite Knowledge

C, Fortran, JavaScript, Node.js.

Difficulty

Intermediate. Familiarity with C and Fortran will be beneficial. This idea mainly involves porting existing implementations and doing so in a manner which conforms with stdlib conventions.

Project Length

90/175/350 hours. Can be scoped accordingly.

Potential Mentors

@kgryte @Planeshifter @steff456 @rreusser @Pranavchiku @czgdp1807

Metadata

Metadata

Assignees

No one assigned

    Labels

    difficulty: 3Likely to be challenging but manageable.ideaPotential GSoC project idea.priority: highHigh priority.tech: cInvolves programming in C.tech: fortranInvolves programming in Fortran.tech: javascriptInvolves programming in JavaScript.tech: native addonsInvolves developing Node.js native add-ons.tech: nodejsRequires developing with Node.js.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions