# My Notes

I try to keep thorough notes about what I've learned so that it's much easier to review when I inevitably forget the details later! Below is a selection of my more polished notes. You are welcome to use them however you like, but keep in mind that most of the exposition is borrowed from other sources, which I've been careful to cite. Please let me know if you spot any errors!

Numerical Analysis

- Chebychev Polynomials (12/8/16)
- Minimax Approximation Theory (11/27/16)

Real Analysis & Probability

- Sup-Inf Inequalities (6/5/17)
- Dynkin's \(\pi\)-\(\lambda\) Theorem (11/15/16)
- Topology Basics (6/21/18)
- Hilbert Spaces & Adjoints (8/5/19)

Convex Geometry

- Separating & Supporting Hyperplanes (6/6/17)
- Caratheodory, Radon, and Helly Theorems (6/21/17)

Linear Algebra

- Tensor Algebra (8/5/19)
- Matrix Inversion Lemma (7/12/19)

Machine Learning / Statistics

- Expectation Maximization (11/14/16)

# Links

Writing good notes takes time, so I like to collect links to books, lecture notes, and blog posts that explain a topic particularly well. Thank you to the authors for making your hard work freely available!

## Numerical Analysis

Solving Linear Systems

**[Notes]**Volker John, Numerical Mathematics IV Course Notes**[Notes]**Gilbert Strang, MIT OCW 18.086, "Mathematical Methods for Engineers"**[Notes]**Chris H. Rycroft 2007, "Iterative Methods for Linear Systems"

Numerical Linear Algebra

**[Paper]**David Kershaw 1978, "The Incomplete-Cholesky—Conjugate Gradient Method..."**[Blog]**Clifford A. Ritter, "Rayleigh Quotient Fractals"

Numerical Integration

**[Notes]**Jonathan Dummer, "A Simple Time-Corrected Verlet Integration Method"**[Forum]**Benedikt Bitterli, "A Verlet-based Approach for 2D Game Physics"**[Paper]**Hairer et al. 2003, "Geometric Numerical Integration Illustrated by Stormer-Verlet"

Numerical Methods for Differential Equations

**[Blog]**Jason Cole 2014, Almost Looks Like Work: "Helmhurts"

Approximation Theory

**[Notes]**A. Shadrin 2005, "Mathematical Tripos III: Approximation Theory"**[Book]**Sachdeva & Vishnoi, "Faster Algorithms via Approximation Theory"**[Blog]**Colin Wallace 2017, "Approximating sin(x) to 5 ULP with Chebychev Polynomials"

## Real Analysis

Calculus

**[Notes]**Math Insight, "The idea behind Green's Theorem"

Functional Analysis

**[Notes]**Vipul Nak, "Function Spaces – and how they Relate"**[Notes]**Jon Claerbout, "Adjoint Operators"

Topology

**[Q/A]**Mathematics StackExchange, "Why can you turn clothing right-side-out?"

## Probability

Probability

**[Book]**Roman Vershynin 2017, "High-Dimensional Probability"

Random Matrix Theory

**[Paper]**Edelman & Rao 2005, "Random Matrix Theory"**[Paper]**Mezzadri 2007, "How to Generate Random Matrices from the Classical Compact Groups"**[Book]**Terrence Tao 2011, "Topics in Random Matrix Theory"**[Notes]**Roman Vershynin 2011, "Intro to Non-asymptotic Analysis of Random Matrices"

Randomness

**[Paper]**Persi Diaconis, "Random Walks on Groups: Characters and Geometry"

## Geometry

Differential Geometry

**[Notes]**Theodore Voronov 2011, "ยง6, Differential Forms"**[Blog]**Physics Insights, "Covariant Derivative of a Vector" and "...of a 1-Form"

Convex Geometry

**[Slides]**Dirk Gregorious 2014, "Implementing Quickhull"**[Book]**Roman Vershynin 2018, "Lectures in Geometric Functional Analysis"

Discrete Geometry

**[Course]**Keenan Crane,*Discrete Differential Geometry*(Book, Slides)**[Site]**Columbia, Discrete Differential Geometry Forum**[Notes]**Hebert Edelsbrunner 2006, "Duke CPS 296.1: Computational Topology"**[Notes]**David M. Mount 2002, "UMD, CMSC 754: Computational Geometry"

## Optimization

Optimization Algorithms

**[Notes]**Jonathan Richard Shewchuk 1994, "Conjugate Gradient without the Agonizing Pain"

Convex Optimization

**[Slides]**Boyd & Vandenverghe, Stanford EE364a: Convex Optimization**[Slides]**Michel Baes @ ETH Zurich 2013, "Convex Optimization"

Linear Optimization

**[Notes]**Tim Roughgarden, Stanford CS261: Algorithms

## Game Development

Collision Detection

**[Q/A]**Math StackExchange, "Proof of Separating Axis Theorem for Polygons"**[Blog]**Dyn4j 2010, "SAT (Separating Axis Theorem)"**[Paper]**Van den Bergen 2004, "Ray Casting against General Convex Objects..."**[Paper]**Van den Bergen 2001, "Proximity Queries and Penetration Depth Computation..."**[Slides]**Erin Catto @ GDC 2010, "Computing Distance"**[Q/A]**GameDev StackExchange, "How does a collision engine work?"**[Q/A]**Google Groups Archive, "Collision Points with SOLID"

Game Development

**[Blog]**Amit Patel, Red Blob Games**[Blog]**Casey Muratori 2014, "The Nebraska Problem"

Game Physics

**[Report]**Thomas Jakobsen, "Advanced Character Physics"

## Computer Graphics

Rendering

**[Tutorial]**Dmitry V. Sokolov, "Tinyrenderer"**[Tutorial]**OGLdev, "Modern OpenGL Tutorials"**[Blog]**Keith O'Conor 2017, "GPU Performance for Game Artists"**[Tutorial]**Vivo & Lowe, "The Book of Shaders"

People to Follow

**[Site]**Portfolio of Benedikt Bitterli**[Site]**Portfolio of Inigo Quilez

Fluid Simulation

**[Notes]**Bridson & Muller-Fischer @ SIGGRAPH 2007, "Fluid Simulation"**[Paper]**Jos Stam, "Stable Fluids"**[Paper]**Jos Stam @ GDC 2003, "Real-Time Fluid Dynamics for Games"**[Tutorial]**The Little Grasshopper, "Simple Fluid Simulation"**[Site]**Michael J. Gourlay, "Interactive Fluid Simulation for Video Games"

Ambient Occlusion

**[Tutorial]**Florian Boesch 2011, "WebGL Screenspace Ambient Occlusion"**[Slides]**Miguel Sainz @ GDC 2008, "Real-Time Depth Buffer Based Ambient Occlusion"**[Blog]**John Chapman 2013, "SSAO Tutorial"

Bezier Curves

**[Notes]**Pomax, "A Primer on Bezier Curves"**[Blog]**Bartosz Ciechanowski 2014, "Drawing Bezier Curves"**[Blog]**Robin Houston 2013, "Beyond Bezier Curves"

Image Processing

**[Blog]**Matt Zucker 2016, "Compressing and enhancing hand-written notes"

## Computer Science

Computer Science Theory

**[Blog]**Matt Zucker 2016, "Flow Free Redux: Eating SAT-flavored Crow"

Programming Languages, Compilers, Operating Systems

**[Notes]**Nick Blundell 2010, "Writing a Simple Operating System — From Scratch"**[Blog]**Arjun Sreedharan 2016, "Write a Simple Memory Allocator"**[Paper]**Abdulaziz Ghuloum 2006, "An Incremental Approach to Compiler Construction"**[Blog]**Ken Fox 2014, "Visualizing Garbage Collection Algorithms"**[Blog]**Ken Haberman 2013, "LL and LR Parsing Demystified"**[Blog]**Jeffrey Kegler 2018, "Parsing: A Timeline (V3)"

## Miscellaneous

**[Book]**Alexander K. Zvonkin, "Math from Three to Seven: ...a Math Circle for Preschoolers"