# Articles on Math

Last updated: 2023/03/24

## Top deep-dives on Math

### Math keeps changing

I think if you were to ask the average person, they'd probably say math is one of those subjects that probably hardly changes anymore, kind of like physics. Oh boy, how wrong they would be on so many fronts. Although this article doesn't go into the changing landscape of mathematics, Tom MacWright explores the changing landscape of JavasScript mathematics. Yeah I know it's from February, but it's still relevant and interesting. ¯\_(ツ)_/¯

### Divisibility by any prime

The connections between different parts of math always blow my mind. It kind of makes me feel like I'm tripping. In this article, John D. Cook doesn't disappoint, illuminating a simple algorithm of determining if a number is divisible by a prime using linear algebra.

### Category Theory Illustrated

Many programming ideas stem from the field of mathematics, especially when it comes to functional programming. Category theory is one such example, and in this illustrated series of articles by Boris Marinov, we get an introduction and exploration of each of its concepts.

### Ray casting in 2D game engines

Ray tracing is one of the goto projects for beginners learning programming or advanced programmers learning another language, because it's visually entertaining and full of fun challenges. Sebastian Szczepański's aesthetically beautiful article (check out the interactive demos) dives deeply into the maths behind 2D ray tracing, pairing dense blocks of equations with visually pleasing interactions.

### A mathematical formulation of the tax code?

### Pi from High School Maths

I wonder what there are more of, uses for π or ways of calculating it? Regardless, there's quite a few of both. In this article, Simon Arneaud discloses a way of calculating π that I've personally never seen before. Simon also shows an intuitive geometric way for understanding the calculation, and a higher level proof Archimedes wrote for calculating the area of a circle without calculus.

### Two counterintuitive results

When learnng about probability, I loved that sometimes your intuitive guess for what was the answer, was actually completely wrong. It was humbling. In this concise article, that uses "lecture notes from several of Tim Roughgarden’s courses at Stanford" as its basis, Arthur O'Dwyer highlights an interesting physics example with a counter intuitive answer, and a probability problem that results in complete success or (occasionally) complete failure.

### Chaos and Randomness

Chaos and randomness are surprisingly difficult to describe in mathematical terms. Maybe this is because there are few things that are truly random? Either way, describing chaos in mathematical terms and using Julia code is exactly what Eric Jang does in this article. Eric asserts what chaos is in terms of orbits, demonstrates its presence in logistics maps, and then explains how combining it with spatial precision error can produce some randomness.

### The probability of a hash collision

Kevin Galligan explains how hash collisions (when two different inputs for a hash function product the same output) occur using the birthday problem as the basis/analogy.

### The bit-twiddling magic of two's complement, explained

I had to slog through learning binary mathematical operations for my electrical engineering degree, and now you can too! Kevin Galligan does a great job of explaining how two's compliment works and why it's relevant to programming.

### Ordering Movie Credits With Graph Theory

Movie end credits are a pain to handle because they have a lot of moving parts. It's one of those niche, difficult tasks that not many people appreciate. Well in this article by Alan Grow and John "Pliny" Eremic, we get a glimpse of how math (specifically graphs) is used to determine the ordering of roles in credits.

### Visualizing Delaunay Triangulation

Ian Henry "describe[s] a deceptively simple algorithm for Delaunay triangulation", with a bunch of fun interactive features you can click. I especially liked the shattering buttons.

### A Deep dive into Ed25519 Signatures

Cendyne does a thorough deep-dive on some of the signatures that underpin modern communication networks and protocols.

### Reed-Solomon Error Correcting Codes from the Bottom Up

Tom Verbeure gives a digestible introduction to a technique used to make data storage or data transmission resilient against corruption.

Some highlights:

- Lots of math, but mostly integer math and not crazy new academic math
- "the Voyager spacecrafts used Reed-Solomon coding to transmit images when it was between Saturn and Uranus, and CDs can recover from scratches that corrupt up to 4000 bits thanks to the clever use of not one but two Reed-Solomon codes"
- To correct up to s symbol errors, you need at least 2s redundant symbols

### Efficient Simulation through Linear Algebra

Martin Thoresen walks through implementing linear system solver in Julia for material simulations.

### Stack Exchange is a good place to explain initial and terminal objects in the category of sets

Category theory is usually roughly associated with programming, because it has ties to functional programming. In this article, Mark Dominus answers a question relating initial and terminal objects, and the mappings of empty sets.

### Catenaries, parabolas, and ropes

Dr. Drang explores the math and physics of parabolas and how they're good approximations for ropes or cables suspended between two points.

### Sampling in Floating Point (1/3): The Unit Interval

Matt Pharr looks at "uniformly sampling a floating-point value between zero and one", and some of the intricacies that arise from using float point numbers on computers.

### Actegories and Lenses

Optics, in functional programming, are made up of tools that allow the programmer to easier manipulating immutable data structures. Bartosz Milewski's technically heavy article focuses on the mathematical theory behind lenses and how it can be applied in monoidal actions and enriched categories.

### Notes on FFTs: for implementers

Fabian Giesen explores different ways of implementing the Fast Fourier Transform, and the pros and cons of each method.

Some highlights:

- The Cooley-Tukey family of algorithms is the most popular, but it can be difficult to understand how it works if you don't have a background in linear algebra
- A ring-theoretic approach is recommended, as it is the most insightful in terms of showing the actual structure of the problem
- You don’t have to pick strictly between iterative and recursive approaches, and you can get the best of both worlds by recursing for larger to medium sizes, and handling the small sub-FFTs iteratively.

### “Practical Math” Preview: Collect Sensitive Survey Responses Privately

Jeremy Kun discusses the math behind using statistics to protect the anonymity of survey responders, without making the data random.

### One Polynomial Approximation to Produce Correctly Rounded Results for Multiple Representations and Rounding Modes

Santosh Nagarakatte and Jay Lim discuss the intricacies of coming up with a method for correctly rounding elementary functions.

### Spelunking the Deep: Guaranteed Queries on General Neural Implicit Surfaces via Range Analysis [pdf]

Nicholas Sharp and Alec Jacobson present a method for conducting range analysis on neural networks to carry out geometric queries. Honestly this one was a bit over my head, but it was recommended to me so I thought some of you might find it interesting.