# Articles on Math

Last updated: 2023/01/16

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

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

### Fast AF Fourier Transform (FafFT)

The Fourier Transform is actually pretty awesome, because it lets you switch between time and frequency domains for functions. It's one of the wonders of signals and math that sometimes make me miss electrical engineering. Well in this article, Conrad Ludgate goes about optimizing the FT in Python, showing some neat tricks along the way.

### Frequency Domain Image Compression and Filtering

I'll be upfront and say this one isn't coding heavy, although it does have C++ code to go along with it. As many of you know, I have a background in electrical engineering, and signal processing is one of the most fascinating aspects of that. In this informative article, Alan Wolfe illuminates how it's done, and the results of processing in the frequency domain. Alan covers image compression, filtering, and convolution, all with accompanying images.

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

### Categories of Nets (Part 1)

John Baez describes a Petri net as "[consisting] of places (drawn as circles) and transitions (drawn as boxes), with directed edges called arcs from places to transitions and from transitions to places". Don't understand? John's article goes much deeper into defining them and similar nets through the monoidal categories they generate.

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

### GPS

Not specifically programming related, but still an interesting deep-dive by Bartosz Ciechanowski into how GPS works with awesome interactivity.
Some highlights:

• It uses satellites to send signals to GPS receivers on Earth, which then use the distance from the satellites to calculate the receiver's location
• The process of calculating a location of a point using measurement of distances is called trilateration
• There was an exceptional amount of technology that to go into making GPS possible

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

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

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

### Nearly Practical Verifiable Computation with a Pinocchio Virtual Machine

Federico Carrone discusses the creation of a virtual machine in Rust that implements the Pinocchio protocol.
Some highlights:

• The Pinocchio protocol is a zk-SNARKs protocol that allows for succinct proofs of circuit executions
• The objective is to prove the correct execution of a "function" on inputs, when you have 0 knowledge of those inputs
• A good bit of math here

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