layout: true class: typo, typo-selection
count: false class: nord-dark, middle, center
@luk036 π¨βπ» Β· 2026 π
.pull-left[
Part 1: Overview π―
- Site Structure & Navigation
- Technology Stack
Part 2: Mathematics & Theory π§
- Convex Optimization
- N-Sphere Sampling
- Geometry & Quorum Systems
Part 3: VLSI & Hardware π
- Physical Design
- DFM Algorithms
- Approximate Computing
- Hardware Acceleration
] .pull-right[
Part 4: Programming & Tools π»
- Modern C++
- Network Optimization
- Rust & Beyond
Part 5: Featured Topics π
- In-Depth Highlights
Part 6: Packages & Navigation π¦
- Key Packages
- Running Slides Locally
]
class: nord-light, middle, center
A static educational website hosted on GitHub Pages, covering three pillars:
.pull-left[ π¬ Mathematics & Algorithms
- Convex optimization, ellipsoid method
- N-sphere sampling, LDS sequences
- Projective geometry, quorum systems
- Bayesian statistics and ML
π» VLSI & Hardware Design
- Physical design automation
- DFM algorithms, clock skew
- Approximate computing, CSD
- CGRA, FPGA, LLVM/MLIR ] .pull-right[ π οΈ Programming & Tools
- Modern C++ (17/20 features, patterns)
- Network optimization algorithms
- Python β Rust migration
- Documentation generation
- Git/CI workflows
By the numbers:
- π 18 topic directories
- π 100+ Remark.js slide decks
- π KaTeX math rendering
- π§© Mermaid diagrams ]
.pull-left[ .mermaid[
graph LR
A[Markdown\nContent] --> B[Remark.js\nSlide Engine]
B --> C[HTML5 Slides]
D[KaTeX\nMath] --> B
E[Mermaid\nDiagrams] --> B
F[Nord Theme\nCSS] --> C
G[GitHub Pages] --> C
style A fill:#4caf50
style B fill:#2196f3
style C fill:#ff9800
style D fill:#9c27b0
style E fill:#f44336
style F fill:#00bcd4
style G fill:#607d8b
] ] .pull-right[
- Remark.js β JavaScript slide engine rendering Markdown β HTML slides
-
KaTeX β Fast
$\LaTeX$ math rendering withignoredTagsfor code blocks - Mermaid β Flowcharts, architecture diagrams, state machines
- Nord Theme β Dark/light slide themes with consistent typography ]
Content is organized into self-contained topic directories:
luk036.github.io/
βββ cvx/ # Convex optimization & ellipsoid method
βββ phys_des/ # VLSI physical design automation
βββ algo4dfm/ # DFM algorithms & complexity theory
βββ AxC/ # Approximate computing & CSD
βββ cgra/ # CGRA, FPGA, LLVM/MLIR, HDL
βββ proglang/ # Modern C++, Git/CI, docs, tools
βββ net_optim/ # Graph algorithms & network flow
βββ n_sphere/ # Low discrepancy sequences
βββ cqs/ # Cyclic quorum systems
βββ projgeom/ # Projective geometry
βββ statistics/ # Bayesian optimization, RL
βββ latch/ # Latch-based timing
βββ rust_by_examples/ # Python β Rust migration
βββ fun/ # Foundations (metric spaces, algebra)
βββ flows/ # Development workflows
βββ idea/ # Working notes, experiments
Each directory contains index.html + README.md (slide deck) + *-remark.html files.
class: nord-light, middle, center
.font-sm.mb-xb[
| Topic | Directory | Description |
|---|---|---|
| Convex Optimization | cvx/ |
CVXPY, KKT conditions, geometric programming, quasi-convex, LMI, ellipsoid method, cutting-plane, Krylov methods |
| N-Sphere Sampling | n_sphere/ |
Low discrepancy sequences (van der Corput, Halton), spherical point generation, CORDIC implementation |
| Projective Geometry | projgeom/ |
Cayley-Klein geometries, rational trigonometry, Python implementation |
| Cyclic Quorum Systems | cqs/ |
Difference covers, necklace generation, distributed systems |
| Statistics & ML | statistics/ |
Bayesian optimization, Gaussian processes, reinforcement learning |
| ] |
.pull-left[ Core Topics:
- Convex programming fundamentals
- Geometric programming (posynomials)
- Quasi-convex programming (bisection)
- Linear Matrix Inequalities (LMI)
- Convex piecewise-linear fitting
Packages:
ellalgoβ Ellipsoid method, cutting-planecvxpyβ Python convex optimization ] .pull-right[ Key Algorithms:- Ellipsoid method with deep/central/parallel cuts
- Cutting-plane with separation oracles
- Geometric program β convex transformations
- Spectral factorization for FIR filters
- Primal-dual interior point methods
Applications: EDA, filter design, circuit sizing ]
Low discrepancy sequences for generating points on spheres:
.pull-left[ Sphere<2,3> (unit 2-sphere in 3D):
- VdCβ β cos Ο, VdCβ β ΞΈ
- CORDIC-free sqrt computation
- Hardware-friendly architecture ] .pull-right[ Sphere3([7,2,3]) (unit 3-sphere in 4D):
- VdCβ β Fββ»ΒΉ LUT β CORDIC
- Spherical coordinates in 4D
- LDS hardware generators ]
Used in: quasi-Monte Carlo, particle filters, hardware test generation.
class: nord-light, middle, center
| Topic | Directory | Description |
|---|---|---|
| Physical Design | phys_des/ |
Circuit partitioning, placement, routing, clock tree synthesis, timing closure |
| DFM Algorithms | algo4dfm/ |
Complexity theory, clock skew under PV, PSM, layout decomposition, delay padding |
| Approximate Computing | AxC/ |
Approximate arithmetic, CSD representation, multiplierless FIR/IIR filters |
| Hardware Acceleration | cgra/ |
CGRA architecture, FPGA, LLVM/MLIR, HDL generators, Yosys synthesis |
| Latch-Based Timing | latch/ |
Useful skew, max-plus algebra, timing optimization |
.pull-left[ Foundations:
- Circuit partitioning (FM, multi-level)
- Rectilinear geometry toolkit
physdesC++/Python package
Placement & Routing:
- Global placement (min-max fairness)
- Steiner forest (2-approximation PD-SF)
- FPGA routing, global routing with keepouts ] .pull-right[ Clocking & Timing:
- DME algorithm for clock trees
- Arena-based tree with
NodeIdx - Linear vs Elmore delay models
- Timing closure (STA, setup/hold, ECO)
- Useful skew optimization
Packages: ckpttnpy, physdes, netlistx
]
.mermaid[
graph LR
subgraph "Part I: Foundations"
F1["DFM Introduction"]
F2["Software Dev & Tools"]
F3["Statistics & Correlation"]
F4["Convex Optimization"]
end
subgraph "Part II: Core Algorithms"
C1["Ellipsoid Method"]
C2["Cutting-plane Method"]
C3["Clock Skew Scheduling"]
C4["Network Flow"]
C5["Complexity Theory"]
end
subgraph "Part III: Advanced"
A1["Phase Shifting Mask"]
A2["Layout Decomposition"]
A3["1D Layout Design"]
end
]
Key topics: NP-completeness in EDA, yield-driven clock skew (EVEN, PROP, C-PROP), Hadlock's algorithm for planar MAX-CUT, delay padding via dual decomposition.
.pull-left[ Approximate Arithmetic:
- Survey of AxC techniques
- Approximate multipliers for neural nets
- Error tolerance analysis
Canonical Signed Digit (CSD):
csdigitPython package- CSD multiplier synthesis (LCSRe)
- Shift-add optimization ] .pull-right[ Digital Filters:
- Multiplierless FIR/IIR design
- Direct-form vs transpose-form
- Discrete optimization vs quantize-after
Root Finding:
gingerpackage- Polynomial root finding & reconstruction
- Leja ordering for numerical stability ]
.font-sm.mb-xs[
| Topic | Description |
|---|---|
| CGRA | Coarse-grained reconfigurable arrays β architecture, compilation, challenges |
| FPGA | Principles, progression, COFFE2 modeling |
| Compilers | LLVM IR, MLIR multi-level infrastructure |
| HDL Generators | LDS hardware with CORDIC, van der Corput β unit sphere |
| Synthesis | Yosys flatten mode, hierarchical vs flat ABC |
| Approx Multipliers | Energy-efficient neural computing |
| Digital Design | Advanced digital system design |
| ] |
class: nord-light, middle, center
| Topic | Directory | Description |
|---|---|---|
| Programming Language | proglang/ |
Modern C++17/20, design patterns, Git/CI workflows, documentation generation, code quality, video processing, xTensor |
| Network Optimization | net_optim/ |
Graph algorithms, NCF, MCR, parametric SP, vertex cover (exactβGPU), TSP, DEC, Hadlock |
| Rust Migration | rust_by_examples/ |
Python β Rust migration guide, ownership, traits |
| Fundamentals | fun/ |
Metric spaces, vector spaces, Boolean algebra |
| Workflows | flows/ |
Development workflows, LaTeX, remote working |
.pull-left[ C++ Features:
- C++17/20 (concepts, ranges, coroutines)
- Design patterns (Strategy, Visitor, CRTP)
- Performance tips (move semantics, inlining)
- Header-only β source-based refactoring
Documentation:
- Doxygen + KaTeX for equations
- Sphinx + matplotlib for figures
- Cross-language docs (C++/Python) ] .pull-right[ Tools & Quality:
- Git/GitHub CLI workflows
- CI automation (GitHub Actions)
- Common mistakes and lessons learned
- AI-assisted code validation
- Remove duplicate code patterns
Cross-Language:
- Python β C++ type systems
- Rust vs C++ comparison
- Cocotb HDL verification
- Video processing (FFmpeg)
- xTensor multi-dim arrays ]
.pull-left[ Core Algorithms:
- Negative Cycle Finding (NCF) β Bellman-Ford, Howard
- Minimum Cycle Ratio (MCR) β Karp's algorithm
- Parametric shortest paths
- Discrete Exterior Calculus (DEC)
Approximations:
- Christofides TSP (3/2-approximation)
- Primal-dual for covering problems
- Hadlock's planar MAX-CUT ] .pull-right[ Vertex Cover Suite:
- Exact algorithms
- Randomized GPU (CUDA, cudarc)
- Python β C++ β Rust ports
- CUDA and Rust GPU implementations
Package: digraphx β Python graph algorithms
]
- Rust Migration Guide β Python β Rust: ownership, borrowing, traits, patterns
- Porting physdes β C++ β Rust: geometry library with DME, Steiner routing, arena trees
- Porting netlistx β Python β Rust: EDA algorithms for covering, matching, graphs
- Rust Ellipsoid β Trait-based generic cutting-plane algorithms
- GPU Vertex Cover (Rust) β cudarc port for GPU-accelerated randomized algorithms
class: nord-light, middle, center
.pull-left[
- Introduction to CVXPY
- Quasi-convex programming via bisection
- Ellipsoid method and amazing oracles
- Geometric programming transformations
- Linear Matrix Inequalities (LMI)
- Convex fitting using B-splines
]
.pull-right[
Key files:
cvxprog-remark.html,quasicvx-remark.html,geomprog-remark.html,ellipsoid-remark.html,ellalgo-remark.html
π See:
cvx/]
.pull-left[
- Circuit partitioning (FM, multi-level, Gray code)
- Rectilinear geometry toolkit
- Global placement (min-max fairness)
- Steiner forest (2-approximation PD-SF)
- DME clock tree synthesis
- Timing closure (STA, ECO)
]
.pull-right[
Key files:
ckpttn-remark.html,nnsplace-remark.html,steiner-forest-remark.html,dme_algorithm-remark.html,timing-closure-remark.html
π See:
phys_des/]
.pull-left[
- Complexity theory & NP-completeness in EDA
- Clock skew scheduling under process variations
- Useful skew optimization
- Multi-corner delay padding via dual decomposition
- Phase shifting mask algorithms
- Layout decomposition for multiple patterning
]
.pull-right[
Key files:
lec05a-remark.html,lec05b-remark.html,delay_padding-remark.html,lec08-remark.html,lec09-remark.html
π See:
algo4dfm/]
.pull-left[
- Survey of approximate arithmetic circuits
- Approximate multipliers for neural computing
- Canonical Signed Digit (CSD) representation
- CSD multiplier: shift-add with LCSRe
- Multiplierless FIR filter design
- FIR vs IIR filter comparison
]
.pull-right[
Key files:
csd-remark.html,csd_multiplier-remark.html,csdigit-remark.html,multiplierless-remark.html,FIR-IIR-remark.html
π See:
AxC/]
class: nord-light, middle, center
| Package | Language | Description | Repo |
|---|---|---|---|
ellalgo |
Python | Ellipsoid method, cutting-plane, oracles | luk036/ellalgo |
digraphx |
Python | Graph algorithms, NCF, MCR, parametric SP | luk036/digraphx |
ckpttnpy |
Python | Multi-level hypergraph partitioning (FM) | luk036/ckpttnpy |
physdes |
Python/C++ | Geometric operations, DME, Steiner routing | luk036/physdes-py |
netlistx |
Python | Covering, matching, independent set | luk036/netlistx |
csdigit |
Python | Canonical signed digit conversion | luk036/csdigit |
projgeom |
Python | Projective geometry, Cayley-Klein | luk036/projgeom-py |
.mermaid[
graph LR
ellalgo[ellalgo\nCutting-Plane] --> digraphx[digraphx\nGraph Algorithms]
digraphx --> ckpttnpy[ckpttnpy\nPartitioning]
ckpttnpy --> physdes[physdes\nGeometry]
physdes --> netlistx[netlistx\nNetlist]
csdigit[csdigit\nCSD] --> multiplierless[multiplierless\nFIR Filters]
style ellalgo fill:#4caf50
style digraphx fill:#2196f3
style ckpttnpy fill:#ff9800
style physdes fill:#9c27b0
style netlistx fill:#f44336
style csdigit fill:#00bcd4
style multiplierless fill:#ff5722
]
Since slides use Remark.js with sourceUrl to load Markdown:
# Recommended: Python HTTP server
cd luk036.github.io
python -m http.server 8000
# Open: http://localhost:8000index.html directly via file:// won't work for slides that load external .md files (CORS restriction). Self-contained *-remark.html files work via file://.
.pull-left[ Starting points by topic:
.font-sm.mb-xs[
| Topic | Start Here |
|---|---|
| Convex Opt | cvx/cvxprog-remark.html |
| N-Sphere | n_sphere/ |
| Physical Design | phys_des/README.md |
| DFM | algo4dfm/lec00-remark.html |
| Approx Computing | AxC/AxC-remark.html |
| CGRA/FPGA | cgra/CGRA-remark.html |
| Programming | proglang/README.md |
| Network Opt | net_optim/quickstart.html |
| ] | |
| ] | |
| .pull-right[ | |
| Slide naming conventions: |
*-remark.htmlβ Self-contained slides (inline pattern, works viafile://)*-slides.mdβ External source markdown (loaded viasourceUrl)README.mdβ Course overview (also Remark.js slides)
All slide decks follow: flatten-remark.html reference style with Agenda, consistent CSS/script ordering, KaTeX callback pattern, and proper slide annotations. ]
count: false class: nord-dark, middle, center
Explore the site at luk036.github.io π
Feel free to explore any topic above. Each directory contains Remark.js slide decks, code examples, and additional resources.
Slides built with Remark.js π | KaTeX | Mermaid | Nord Theme