Skip to content

luk036/luk036.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

901 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

layout: true class: typo, typo-selection


count: false class: nord-dark, middle, center

πŸ—ΊοΈ luk036.github.io

Educational Content on Algorithms, VLSI Design, and Programming

@luk036 πŸ‘¨β€πŸ’» Β· 2026 πŸ“…

Codacy Badge


πŸ“‹ Agenda

.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

Part 1: Overview 🎯


🌐 Site Overview

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 ]

πŸ—οΈ Technology Stack

.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 with ignoredTags for code blocks
  • Mermaid β€” Flowcharts, architecture diagrams, state machines
  • Nord Theme β€” Dark/light slide themes with consistent typography ]

πŸ“ Directory Structure

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

Part 2: Mathematics & Theory 🧠


πŸ”¬ Mathematics & Theory

.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
]

πŸ“ Convex Optimization (cvx/)

.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-plane
  • cvxpy β€” 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 ]


🌐 N-Sphere Sampling (n_sphere/)

Low discrepancy sequences for generating points on spheres:

$$ \text{VdC}_b(n) = \sum_i d[i] \cdot b^{-i-1} $$

.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

Part 3: VLSI & Hardware πŸ”Œ


πŸ’» VLSI & Hardware Design

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

🏭 Physical Design (phys_des/)

.pull-left[ Foundations:

  • Circuit partitioning (FM, multi-level)
  • Rectilinear geometry toolkit
  • physdes C++/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 ]


πŸ›‘οΈ DFM Algorithms (algo4dfm/)

.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.


⚑ Approximate Computing (AxC/)

.pull-left[ Approximate Arithmetic:

  • Survey of AxC techniques
  • Approximate multipliers for neural nets
  • Error tolerance analysis

Canonical Signed Digit (CSD):

  • csdigit Python 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:

  • ginger package
  • Polynomial root finding & reconstruction
  • Leja ordering for numerical stability ]

πŸš€ Hardware Acceleration (cgra/)

.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

Part 4: Programming & Tools πŸ’»


πŸ› οΈ Programming & Tools

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

πŸ–₯️ Programming Languages (proglang/)

.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 ]

🌐 Network Optimization (net_optim/)

.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 & Beyond

  • 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

Part 5: Featured Topics 🌟


🎯 Convex Optimization

.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/ ]


🎯 Physical Design Automation

.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/ ]


🎯 DFM & Clock Skew

.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/ ]


🎯 Approximate Computing & CSD

.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

Part 6: Packages & Navigation πŸ“¦


πŸ“¦ Key Packages

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

πŸ”— Package Relationships

.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

]


πŸ–₯️ Running Slides Locally

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:8000

⚠️ Opening index.html directly via file:// won't work for slides that load external .md files (CORS restriction). Self-contained *-remark.html files work via file://.


🧭 Navigating the Site

.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 via file://)
  • *-slides.md β€” External source markdown (loaded via sourceUrl)
  • 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

πŸ™‹ Questions?

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

About

🌐 Personal Homepage

Resources

License

Stars

7 stars

Watchers

2 watching

Forks

Contributors