Skip to content

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

Open
@kgryte

Description

@kgryte

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    difficulty: 4Likely to be challenging with ambitious goals.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