Skip to content

[Idea]: add LAPACK bindings and implementations for linear algebra #95

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
4 tasks done
kgryte opened this issue Feb 14, 2025 · 0 comments
Open
4 tasks done

[Idea]: add LAPACK bindings and implementations for linear algebra #95

kgryte opened this issue Feb 14, 2025 · 0 comments
Labels
difficulty: 4 Likely to be challenging with ambitious goals. idea Potential GSoC project idea. priority: high High priority. tech: c Involves programming in C. tech: fortran Involves programming in Fortran. tech: javascript Involves programming in JavaScript. tech: native addons Involves developing Node.js native add-ons. tech: nodejs Requires developing with Node.js.

Comments

@kgryte
Copy link
Member

kgryte commented Feb 14, 2025

Idea

LAPACK 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 LAPACK routines in free-form Fortran 95
  • port reference LAPACK routines to pure C
  • port reference LAPACK routines to pure JavaScript
  • write Node.js bindings to allow calling LAPACK routines in compiled C/ Fortran from JavaScript

Expected outcomes

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

Status

Some work has begun toward this effort. See https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/lapack/base.

Involved software

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

Technology

C, JavaScript, Fortran, nodejs, native addons

Other technology

None.

Difficulty

4

Difficulty justification

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. Some of the reference implementations are likely to be quite involved and testing the correct output can be tricky, especially for lower-level helper routines.

Prerequisite knowledge

C, Fortran, JavaScript, Node.js.

Project length

350

Checklist

  • I have read and understood the Code of Conduct.
  • I have read and understood the application materials found in this repository.
  • The issue name begins with [Idea]: and succinctly describes your idea.
  • I understand that, in order to apply to be a GSoC contributor, I must submit my final application to https://summerofcode.withgoogle.com/ before the submission deadline.
@kgryte kgryte added difficulty: 4 Likely to be challenging with ambitious goals. idea Potential GSoC project idea. priority: high High priority. tech: c Involves programming in C. tech: fortran Involves programming in Fortran. tech: javascript Involves programming in JavaScript. tech: native addons Involves developing Node.js native add-ons. tech: nodejs Requires developing with Node.js. labels Feb 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
difficulty: 4 Likely to be challenging with ambitious goals. idea Potential GSoC project idea. priority: high High priority. tech: c Involves programming in C. tech: fortran Involves programming in Fortran. tech: javascript Involves programming in JavaScript. tech: native addons Involves developing Node.js native add-ons. tech: nodejs Requires developing with Node.js.
Projects
None yet
Development

No branches or pull requests

1 participant