# programming

- MLIR — Defining Patterns with PDLL
- Fully Homomorphic Encryption in Production Systems
- A High-Level Technical Overview of Fully Homomorphic Encryption
- MLIR — A Global Optimization and Dataflow Analysis
- MLIR — Lowering through LLVM
- MLIR — Dialect Conversion
- MLIR — Canonicalizers and Declarative Rewrite Patterns
- Encoding Schemes in FHE
- MLIR — Verifiers
- MLIR — Folders and Constant Propagation
- MLIR — Using Traits
- MLIR — Defining a New Dialect
- MLIR — Using Tablegen for Passes
- MLIR — Writing Our First Pass
- MLIR — Running and Testing a Lowering
- MLIR — Getting Started
- Two's Complement and Group Theory
- Sample Extraction from RLWE to LWE
- Estimating the Security of Ring Learning with Errors (RLWE)
- Negacyclic Polynomial Multiplication
- Polynomial Multiplication Using the FFT
- Modulus Switching in LWE
- "Practical Math" Preview: Collect Sensitive Survey Responses Privately
- The Gadget Decomposition in FHE
- Searching for RH Counterexamples — Exploring Data
- Regression and Linear Combinations
- Searching for RH Counterexamples — Scaling Up
- Searching for RH Counterexamples — Performance Profiling
- Searching for RH Counterexamples — Deploying with Docker
- Optimization Models for Subset Cover
- Searching for RH Counterexamples — Adding a Database
- Searching for RH Counterexamples — Setting up Pytest
- Visualizing an Assassin Puzzle
- Binary Search on Graphs
- Formulating the Support Vector Machine Optimization Problem
- The Inner Product as a Decision Rule
- The Reasonable Effectiveness of the Multiplicative Weights Update Algorithm
- Zero Knowledge Proofs for NP
- Zero Knowledge Proofs — A Primer
- Singular Value Decomposition Part 2: Theorem, Proof, Algorithm
- Hashing to Estimate the Size of a Stream
- Load Balancing and the Power of Hashing
- Serial Dictatorships and House Allocation
- One definition of algorithmic fairness: statistical parity
- The Welch-Berlekamp Algorithm for Correcting Errors in Data
- The Many Faces of Set Cover
- Finding the majority element of a stream
- Making Hybrid Images
- Linear Programming and Healthy Diets — Part 1
- Stable Marriages and Designing Markets
- Simulating a Biased Coin with a Fair Coin
- Fixing Bugs in "Computing Homology"
- The Two-Dimensional Fourier Transform and Digital Watermarking
- Bandits and Stocks
- Adversarial Bandits and the Exp3 Algorithm
- Optimism in the Face of Uncertainty: the UCB1 Algorithm
- Reservoir Sampling
- Miller-Rabin Primality Test
- Universal Properties
- Bezier Curves and Picasso
- Categories as Types
- A Sample of Standard ML, the TreeSort Algorithm, and Monoids
- Seam Carving for Content-Aware Image Scaling
- k-Means Clustering and Birth Rates
- Depth- and Breadth-First Search
- Complete Sequences and Magic Tricks
- Trees—A Primer
- K-Nearest-Neighbors and Handwritten Digit Classification
- The Cellular Automaton Method for Cave Generation
- Dynamic Time Warping for Sequence Comparison
- The Fast Fourier Transform
- Principal Component Analysis
- Streaming Median
- Thoughts after a Year of Math ∩ Programming
- Learning Programming — Finger-Painting and Killing Zombies
- Cryptanalysis with N-Grams
- Word Segmentation, or Makingsenseofthis
- Numerical Integration
- Row Reduction Over A Field
- Metrics on Words
- Holidays and Homicide
- Z[√2] has Infinitely Many Units
- The Perceptron, and All the Things it Can't Perceive
- A Dash of Python
- Number Theory—A Primer
- Encryption & RSA
- Eigenfaces, for Facial Recognition
- Hunting Serial Killers
- Optimally Stacking the Deck—Kicsi Poker
- Turing Machines and Conway's Dreams
- The Wild World of Cellular Automata
- Google's Page Rank—The Final Product
- Featured Posts
- Prime Design