How chem281materials/lab-3 works
This repository is a hands-on C++ development lab: learners prepare a containerized environment, implement and exercise a BLAS-backed linear algebra library, and inspect a deliberately leaky dummy database. The principal code workflow is the demo calling the projection API, which uses the norm and dot-product routines and delegates numerical work to BLAS. README-described setup and testing capabilities are included; the sampled source does not show the container launcher’s implementation or the internals of the test file.
Main entry points: develop_container.sh Container launcher · DevelopmentBLAS.Dockerfile BLAS image · linear_alg.h Linear algebra API · linear_alg.cpp Linear algebra routines
Components 12
Development environment
- Base image
DevelopmentBase.Dockerfile - BLAS image
DevelopmentBLAS.Dockerfile - Container launcher
develop_container.sh
Linear algebra
- BLAS
- Linear algebra API
example_library/include/linear_alg.h - Linear algebra routines
example_library/src/linear_alg.cpp - Projection demo
example_library/src/main.cpp
Testing and debugging
- Unit tests
example_library/test/linear_alg_test.cpp - Leaky database demo
example_library/src/db_debug.cpp - Coverage workflow
example_library/CMakeLists.txt - Valgrind
Other components
- Learner
Connections 10
- Learner → Base image: builds
- Learner → BLAS image: extends
- Learner → Container launcher: runs
- Container launcher → BLAS image: launches
- Projection demo → Linear algebra API: calls
- Linear algebra routines → BLAS: uses
- Unit tests → Linear algebra API: tests
- Learner → Leaky database demo: runs
- Learner → Valgrind: debugs with
- Learner → Coverage workflow: generates