0% found this document useful (0 votes)
40 views8 pages

Modular Linear Algebra Library in C For Science & Education: Computer Engineering

The document outlines a project to develop a Modular Linear Algebra Library in C aimed at scientific and educational use, focusing on core matrix computations. It emphasizes portability, readability, and ease of integration with Python, while avoiding heavy dependencies on external libraries. The project includes a detailed timeline for completion, technical specifications, and a literature review supporting the need for such a library.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views8 pages

Modular Linear Algebra Library in C For Science & Education: Computer Engineering

The document outlines a project to develop a Modular Linear Algebra Library in C aimed at scientific and educational use, focusing on core matrix computations. It emphasizes portability, readability, and ease of integration with Python, while avoiding heavy dependencies on external libraries. The project includes a detailed timeline for completion, technical specifications, and a literature review supporting the need for such a library.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

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

You might also like