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