Modular Linear Algebra library in C for
Science & Education
PROJECT SYNOPSIS
BACHELOR OF ENGINEERING
Computer Engineering
SUBMITTED BY
Nikita Sanap
Tanmayee Suryavanshi
Sakshi Takalkar
Shreyas Joshi
Under the guidance of
Prof. Dr. Mrs. S. A. Itkar
Department of Computer Engineering
P. E. S. Modern College of Engineering,
Pune.
2025-2026
Contents
1 Title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
3 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
4 Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
5 Literature Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
6 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
7 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
8 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
9 Brief Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
10 Technical Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
11 Probable Date of Completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
12 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
List of Figures
1 Architecture Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
List of Tables
1 Title
Modular Linear Algebra Library in C for Science & Education
2 Domain
Operating System, Scientific Computing.
3 Keywords
Mathematics of computing → Numerical linear algebra, Matrix computations; Computing method-
ologies → Scientific computing; Software and its engineering → Software libraries, Reusable
software components, Procedural languages, APIs; Information systems → Open source soft-
ware.
General Keywords: C programming, Python integration, modular design, educational soft-
ware, linear algebra toolkit.
4 Team
Group ID: B10
Team Members:
1. Nikita Sanap-412.
2. Tanamyee Suryavanshi-41258.
3. Sakshi Takalkar-41264.
4. Shreyas Joshi-41266.
1
5 Literature Review
Conceptual
Author & Research
Frame- Analysis / Result
Date Question
work
Ryan How to en-
GPU-based
Curtin et able scientific
linear al- Created Bandicoot for optimized
al. (Bandi- computing on
gebra in GPU computation
coot) GPU using
C++
(2024) C++
Should C
Language
Linda replace FOR- Concluded C has modern advan-
compari-
Wharton TRAN in tages but FORTRAN still strong
son: C vs
(1995) scientific in legacy systems
FORTRAN
computing?
Which lan-
Shaohao C vs guage is more
Analyzed performance, showing
Chen Fortran effective for
trade-offs
(2017) libraries numerical
libraries?
William How to im-
Press et al. Scientific plement
Provided standard methods with
(Numerical computing numerical
code in C
Recipes) in C methods using
(1986) C
Bahjat Design
How to design
Qaqish of matrix Developed modular SML 1.4
a reusable C
(SML v1.4) libraries in with educational purpose
matrix library
(2023) C
Mapping
Elvira Apostolos Systematic mapping of software
study on
Arvanitou Ampat- engineering practices in scien-
scientific
(2013) zoglou tific computing
software
2
6 Objective
1. Core Matrix Computation and Algebraic Operations: Implement fundamental matrix
algorithms and algebraic routines commonly used in scientific computing and engineering
applications.
2. Written in Pure C : Implement all functionalities using standard C for maximum compat-
ibility.
3. Portable Across Platforms : Ensure the library runs on desktop, embedded systems, and
cross-compiled environments.
4. No Heavy Dependencies : Do not depend on external libraries like BLAS, LAPACK.
5. Educational Clarity : Prioritize readable, well-commented code suitable for students and
educators to understand the workings of each algorithm.
6. Accessible via Python Interface : Provides lightweight C to Python Wrapper.
7 Problem Statement
A lightweight C-based linear algebra library focused on core matrix computations for scientific
and educational use. It offers essential algorithms with modular, readable code. Designed for
portability and Python integration, it prioritizes accessibility over raw speed, unlike traditional
Fortran libraries
8 Scope
1. Focused on implementation essential linear algebra operations (Addition, Multiplication,
LU, Inverse).
2. Limited to operations on real-valued matrices.
3. Includes a CLI & Python wrapper for demonstration.
3
9 Brief Description
Figure 1: Architecture Diagram
1. This project aims to develop a lightweight, modular linear algebra library in C, focusing
on core matrix computations. It is designed for portability, readability, and educational
use, especially in embedded and scientific computing environments. The library supports
basic to advanced operations such as LU decomposition, QR factorization, and eigenvalue
routines
2. The library is written in ANSI C for maximum portability across platforms. Each algorithm
(e.g., LU, QR, eigenvalue computation) is implemented as a separate, reusable module.
Memory management is handled manually, optimized for low overhead in embedded or
resource-constrained systems. Matrix operations are defined using a central Matrix struct
with dimensions, storage mode (row/column-major), and pointer to data. Python bindings
are provided using a minimal C-Python interface, enabling usage in scripting and rapid
prototyping. The code is well-documented and unit-tested using a lightweight C testing
framework for reliability. Optional support for BLAS/LAPACK backends can be integrated
for performance-critical deployments.
3. The final product is a lightweight, header-only C library for matrix computations with
command-line demos. Python users can invoke the same algorithms via bindings to allow
rapid experimentation. The library is ideal for students, researchers, or developers building
educational tools or embedded AI systems.
4
10 Technical Details
Platform
1. Development OS:
Ubuntu 20.04+ / Fedora 35+ / macOS / Windows 10+
Linux is preferred for easier scripting and GCC toolchain support
2. Deployment OS:
Cross-platform (any OS with a C compiler)
Suitable for embedded platforms (e.g., ARM Cortex-M, Raspberry Pi)
Software Specification
1. ANSI C (C99 standard for compatibility)
2. Compiler:
GCC (Linux/Mac), Clang (Mac), or MinGW (Windows)
3. Python Binding :
Python 3.8+
CFFI or ctypes for simple bindings
NumPy (for interoperability tests)
4. Build Tools:
Make or CMake (recommended for modular builds)
Shell script for compiling demos and tests
5. Version Control:
Git for code management
GitHub/GitLab for repository hosting
Hardware Specification
1. CPU: Intel i5 or equivalent (minimum)
2. RAM: 4 GB (minimum), 8 GB recommended
3. Storage: 200 MB for codebase and libraries
5
11 Probable Date of Completion
Project Duration : 10 Weeks
Week 1:
Define scope of the library – core matrix types, supported operations.
Week 2:
Write basic matrix data structures and memory allocation functions.
Week 3:
Implement matrix input/output, basic operations (add, subtract, multiply).
Week 4:
Add support for scalar multiplication, transpose, identity, and inverse.
Week 5:
Implement LU decomposition with partial pivoting.
Week 6:
Implement QR decomposition using Gram-Schmidt or Householder reflections.
Week 7:
Add basic eigenvalue and eigenvector routines (for symmetric matrices).
Week 8:
Integrate unit tests and validation scripts for all algorithms.
Week 9:
Write documentation and examples (usage, compiling, test results).
Week 10:
Final testing, bug fixes, performance check, and version release.
12 References
1. Bandicoot: GPU-accelerated linear algebra — Curtin, Edel & Sanderson (2023)
2. Should C Replace FORTRAN as the Language of Scientific Programming? — Wharton
(1995)
3. Numerical Libraries with C — Chen, Boston University
4. Numerical Recipes in C: The Art of Scientific Computing — Press et al.
5. Developing a Matrix Library in C (SML v1.4) — Qaqish, UNC Chapel Hill
6. Software Engineering Practices for Scientific Software — Arvanitou & Ampatzoglou et al.
(2020)
7. Bandicoot documentation / SourceForge overview — Bandicoot: GPU linear algebra li-
brary
8. Bandicoot journal listing — Curtin, Edel & Sanderson, CoRR abs/2308.03120