RSS Amplifier

Blog

Home on EPH

Recent content in Home on EPH

ericphanson.comRSS feed ↗61 posts

Latest posts

Costa Rica photos

I visited family in Costa Rica and got to see tons of cool animals and birds. Pretty happy with how some of these came out! Was also very excited to see some night herons, I have not been able to find any in Madrid, although supposedly they are around.

LibImageQuant.jl

Color quantization Usage Examples Are there clear breakpoints in file size as you quantize further? Beyond PNG This post is cross-posted from the Julia language community’s Discourse forum. See here for the original post where you can read and leave comments. libimagequant is a GPL Rust library (originally C, ported to rust by the maintainers) which performs color quantization (available from the…

Birb Stalker (2021)

In 2021, I had a project I called “birb stalker”. It was kind of a weird project. I was interested in taking “paparazzi” photos of birds, in which they were potentially partially obscured, etc, to emphasize the role of the photographer and that photos always are part of some physical context, which in many cases we try to omit. I had a couple fuzzy thoughts circling my head…

Counting short package names

Introduction Mixed-integer linear programs An analytical solution to a simpler problem Finding 676 3-letter package names satisfying our pairwise DL distance constraint Notes Introduction In my post yesterday Thoughts on being a package registry maintainer , I discussed package registration moderation, exercise of power, and some historical moderation decisions. One piece of it was about Julia…

Thoughts on being a package registry maintainer

Introduction How did I become a maintainer & should I exercise that power? What factors should I consider in registration decisions? Three-letter package names Do we need a system for this? Introduction Julia is a modern programming language with a fairly large package ecosystem (currently ~10k packages) that provide all kinds of useful functionality to build on. Packages are registered in a…

Bus factor 0

“Bus factor” is a somewhat morbid term used in software engineering (and possibly elsewhere), meaning the number of people who would have to get “hit by a bus” for a project to fall apart. In programming terms, it’s often used to mean the number of people who understand a codebase. It’s also called the “lottery factor” sometimes to try to have a less morbid spin; the number of people who would win…

I can't stop vibe-coding

I just keep vibe coding . I don’t think I’ve written about this on my blog before but I was diagnosed with classical hodgkin’s lymphoma (CHL) in late June and have been on medical leave basically since then doing ABVD chemo 1 . I want to write a post on that at some point (and PET scans, medical imaging is pretty cool), but the relevance for this post is that (1) I have kind of a lot of time, (2)…

valuetier.org (and some thoughts on LLMs)

Note: the first half of the blog post documents my experience and takeways making valuetier.org , a webapp for helping users (or specifically, me) identify their values. The second half is more of a personal exploration of my thoughts & feelings about LLMs. ValueTier.org (& “vibecoding good”) I’ve been doing some Acceptance and Commitment Therapy (ACT) and have found it pretty…

Julia's package registration tooling

Julia has a large ecosystem of over 10,000 registered packages in it’s “ General ” open-source package registry. Package registration is mostly automated, but it can be hard to understand how all the various bits fit together. There are some helpful resources and tutorials on how to create and register a package, such as https://julialang.org/contribute/developing_package/…

Why you might avoid `deepcopy` in Julia

Why use deepcopy ? In Julia , copy is a function which creates a shallow copy. For example: julia> a = [1] # vector with one element, namely 1 1-element Vector{Int64}: 1 julia> b = [a] # vector with one element, `a` 1-element Vector{Vector{Int64}}: [1] julia> b2 = copy(b) # new vector, also with one element which is `a` 1-element Vector{Vector{Int64}}: [1] julia> push!(a, 2) # mutate `a` so it…

Learning algorithmic techniques: dynamic programming

Three nice techniques In the past months, I’ve found myself really appreciating some nice techniques for constructing algorithms. These are probably quite familiar to those with a computer science background, but are new to me. There are three in particular that I have in mind; I’ll just highlight the first two here, and then discuss the third in detail. The first such technique I learned about…

When do we lose correlations under Markovian evolution?

This post started as a talk for the CCIMI retreat, the slides of which are available here . But I added a lot of words to turn this into a blog post, so I encourage you to stay here instead! Consider the following divided box with \(N=20\) particles A discrete-time Ehrenfest model . Toggle animation At each time step, exactly one particle jumps from one side of the box to the other. The more…

Another example of using type domain information in Julia

In a previous post , I discussed using type domain information to speed up generation of random density matrices with small dimension in Julia. There, we gave the Julia compiler knowledge of the dimension of the matrices at the time it generates code, instead of passing that dimension as a runtime variable, and saw significant runtime speedups as a consequence. This time, let’s push this further…

Carathéodory's theorem and the Holevo capacity

Let \(\Lambda: \mathcal{B}(\mathcal{H})\to \mathcal{B}(\mathcal{H})\) be a quantum channel completely positive and trace-preserving map on a finite-dimensional Hilbert space \(\mathcal{H}\) , and let \(d:= \dim \mathcal{H}\) . The Holevo capacity of \(\Lambda\) is defined as \[ \chi(\Lambda) := \sup_{\{p_k, \rho_k\}} \left[ S\Big(\sum_k p_k \Lambda(\rho_k)\Big) - \sum_k p_k S( \Lambda(\rho_k))…

Fast small random density matrices

Update (19 January 2019): I looked at this code again, and realized I had made a few basic mistakes, such as constructing a statically sized normally-distributed random matrix via SMatrix{d,d,Float64, d*d}(randn(Float64, d,d)) which constructs a random matrix (allocating memory dynamically) and then converts it to a static SMatrix , instead of randn(SMatrix{d,d,Float64}) which directly constructs…

Website rewrite

I decided to redo my website using Hugo (before I was using Jekyll). Both are static site generators: you write in Markdown, a simple clean formatting language, and it generates HTML webpages following a consistent format. It’s great because the generation only has to occur once after the Markdown is written, and nothing active has to happen for each user of the website (unlike a so-called dynamic…

Locally maximizing the Rényi entropies

As I was rewriting my website, I found some visualizations I had stored on my old website to show a collaborator, and I figured it was worth writing a little to have a more proper place to put them; hence this post 😊. Probability distributions on three letters consist just of three non-negative numbers which add up to 1, which we can see as a vector in \(\mathbb{R}^3\) . The set of all such…

How to make an index in LaTeX

I’m sure there are many ways to make an index in LaTeX, but I was asked this question recently and thought I’d put my response here, which is based on what I did in my combinatorics notes . In the preamble, make a command \defw (short for “define word”), use the package imakeidx , and call \makeindex : \usepackage{imakeidx} \usepackage{xparse} \NewDocumentCommand{\defw}{m o}{% {\emph{#1}}%…

arXiv-search (the sad goodbye-for-now post)

Update (26 January 10): The source code is now available under a MIT license at https://github.com/ericphanson/arxiv-search . For a few months, I and a few others were working on a project we called “arxiv-search”, an attempt to search and sort all of the arxiv (~1 million papers). We were inspired by Andrej Karpathy ’s arxiv sanity preserver which is an excellent tool for a limited set of papers…

A synchronized dance of eigenvalues

The motivation behind this post is to show some off some nice gifs. But I thought maybe they aren’t actually interesting without any context, so below I’ll try to explain what the gifs are about.

Perceptron demo

A javascript demonstration of the perceptron algorithm, written for a reading group session. This was originally a separate webpage, but when I rewrote my website I decided to make it a blog post. This post can still be reached from /perceptron-demo , though. Perceptron Perceptron is a very simple binary classification online learning algorithm, dating from the 1950s 1 . Such an algorithm tries to…

The arrow of time in RIS

Repeated interaction systems (RIS) Introduction to arrow of time A more careful description of the forward and backward processes Hypothesis testing on the arrow of time Connection to Landauer’s Principle I gave an informal talk today on the arrow of time in repeated interaction systems and I thought I’d write about it here.

The traveling salesman and 10 lines of Python

Update (21 May 18): It turns out this post is one of the top hits on google for “python travelling salesmen”! That means a lot of people who want to solve the travelling salesmen problem in python end up here. While I tried to do a good job explaining a simple algorithm for this, it was for a challenge to make a progam in 10 lines of code or fewer. That constraint means it’s definitely not the…

Setting up SublimeText

I’m setting up a new laptop and figured it was a good chance to document setting up SublimeText for LaTeX, as quasi follow up to my recent post about live LaTeXing. However, installing LaTeX can be hard, and configuring the SublimeText package LaTeXTools to work with LaTeX has the potential to be hard (often just works, but if not, can be confusing), and I won’t write about those parts, because…

Live notetaking with LaTeX

A friend suggested I write a guide about live notetaking in LaTeX, since it’s pretty useful and something I have a fair amount of experience with. I had been making attempts at live-LaTeXing course notes for a year or two before I was able to make it through a semester long class; the first course I fully LaTeX’d was Vojkan Jaksic’s excellent Analysis 3 (introduction to metric spaces and topology)…

Landauer's Principle and the balance equation

I’ve been working on my thesis Edit: this was my master’s thesis over reading week, and I think I’ve finished my introduction to Landauer’s Principle. I ended up writing a pretty detailed derivation of the balance equation, and thus Landauer’s bound, so I thought it might be useful to post here. Landauer's principle states that there is a minimal energetic cost for a state transformation…

Cantor's set and function

Cantor’s Set Construction Properties Cantor’s function I wrote these notes in February 2016 for an Analysis 2 tutorial when I was a teaching assistant at McGill, and always intended to put them here eventually; before August 2018 though, I hadn’t translated them to something web-friendly and only had posted a PDF The web version has slightly improved wording in some parts. . Cantor’s Set Cantor’s…

Completeness I

Last semester, I helped a friend review McGill’s Analyis 3 course by trying to provide a better feel for completeness; this post will be a slightly edited version of that. Originally, I wanted to write about both completeness and compactness, and their connections, but I ended up only getting to completeness, and actually not everything I wanted to talk about. So I’ll call this Completeness I ,…

New blog

I’ve made a new blog! I started a “coffee blog” a month or so ago but only posted once (I think I’ll bring that post over here, too). I do like the idea though, and want to write about math and my research. So this should become a place for me to do that. Part of my impetus is that journals and traditional publication methods don’t provide a pathway for discussing failed attempts. And I think on a…

Is QSEP-CIRCUIT QMA-hard?

“QSEP-CIRCUIT, as defined in a recent paper by Patrick Hayden, Kevin Milner, and Mark Wilde ( http://arxiv.org/abs/1211.6120 ) in the computer science department here at McGill, is the problem of determining whether or not a quantum state given as a circuit is separable or not. The problem has been shown to be in QIP(2), and to be NP-hard and QSZK-hard, which lends credence to the idea that…

QSEP-STATE in QMIPne

A poster on my work with Chris Bahr, under the supervision of Patrick Hayden, on a quantum complexity theory problem about entanglement, presented at McGill University for an undergraduate computer science poster session. Abstract: The promise problem QSEP-STATE asks if a quantum state described by a circuit is close to a separable (not entangled) state across a given cut, or not. A quantum…

Life on Phorcys

2013 University Physics Competition submisssion. “In this article, we investigate the possible forms of life that may exist on planet Phorcys. Our approach is to determine key parameters describing the planet: temperature variation, ice cover, surface pressure and ocean presence and depth. We find that Phorcys is covered in a global ocean, with large ice caps and the possibility of an ice…

Non-local games and communication complexity

“Synthesizing some of the literature on non-local games and communication complexity scenarios provides a deeper understanding of the fundamental differences between classical mechanics and quantum mechanics, as exemplified by the quantum violation of Bell inequalities, which hold in classical mechanics. Quantum mechanical protocols are shown to provide significant advantages in certain…

Math 354 Honours Analysis 3 Notes

Introduction to metric spaces, topological spaces.

QSEP-State is in QMIPne

“The promise problem QSEP-STATE asks if a quantum state described by a circuit is close to a separable (not entangled) state across a given cut, or not. A quantum multiprover protocol was found to give an upper bound for the computational complexity of QMIPne, which is the class of problems that can be solved by a computationally bounded quantum verifier exchanging messages with unentangled,…

The black hole information paradox

“The black hole information paradox concerns the intersection of quantum mechanics and general relativity, so its resolution could point the way towards a quantum theory of gravity. The paradox is a contradiction between our understanding of the limits of our physical theories and the consequences of them. With curvature on the scales of that in our solar system, current physical theories…

Landauer's Principle

“Landauer’s principle states that the energy cost to erase one bit of information by the action of a thermal reservoir at equilibrium temperature $T$ is always at least $kT$, and provides an interesting link between information theory and physics. My goal is to discuss Landauer’s principle generally, and for the case of a 2 level system coupled to a thermal reservoir modelled by an XY spin…

The existence and uniqueness of the Haar Measure

“The Haar measure allows integration over topological groups, which has many applications; for example, the use of the Haar measure in proving the Fully Quantum Slepian Wolf (or state transfer) protocol fundamental to quantum information theory is briefly discussed in section VI. But first we build the definitions necessary to define the Haar measure, and state some fundamental theorems.…

Landauer's Principle in Repeated Interation Systems

“We study Landauer’s Principle for Repeated Interaction Systems (RIS) consisting of a reference quantum system $\mathcal{S}$ in contact with a structured environment $\mathcal{E}$ made of a chain of independent quantum probes; $\mathcal{S}$ interacts with each probe, for a fixed duration, in sequence. We first adapt Landauer’s lower bound, which relates the energy variation of…

Landauer's Principle in RIS

Slides for a talk I gave to the Physics of Information lab at Waterloo, February 2016, about Landauer’s Principle in Repeated Interaction Systems. Based on the preprint arxiv/1510.00533 .

Combinatorics Notes

Extremal combinatorics: Sperner systems, the Littlewood-Offord problem, intersecting hypergraphics, compression, Turan type problems, Ramsey theory, convexity, incidence problems, and algebraic methods. Contribute typo fixes here .

Landauer's Principle in Repeated Interaction Systems

My masters thesis; essentially, an expanded version of most of arXiv:1510.00533 , in my own words. The abstract: “Landauer’s Principle states that there is a lower bound on the energy required to change the state of a small system from an initial state to a final state by interacting with a thermodynamic reservoir; of particular interest is when the bound is saturated and the minimal energy…

Landauer’s Principle in Repeated Interaction Systems

The slides for the talk I gave at the Autrans summer school Stochastic Methods in Quantum Mechanics on my work with Alain Joye, Yan Pautrat, and Renaud Raquepas on Landauer’s Principle in repeated interaction systems.

Landauer's Principle in Repeated Interation Systems

A poster on my work with Alain Joye, Yan Pautrat, and Renaud Raquepas on Landauer’s Principle in repeated interaction systems, presented at the one-day event CCIMI New Directions in the Mathematics of Information .

Local continuity bounds for entropies of finite probability distributions

A poster on my work with my supervisor Nilanjana Datta on local continuity bounds for the entropies of finite distributions, presented at the one-day event High Dimensional Mathematics . I gave a short “elevator pitch” to advertise the poster, the video recording of which is posted here .

Local continuity bounds for entropies of finite probability distributions

A presentation on my work with my supervisor Nilanjana Datta on local continuity bounds for the entropies of finite distributions, presented at the one-day event High Dimensional Mathematics . These are the slides I gave accompanying my short talk, the video of which is here .

Landauer's Principle for Trajectories of Repeated Interaction Systems

A refinement and generalization of our previous work on Landauer’s Principle in repeated interaction systems. We consider a two-time measurement protocol of the energy of the quantum probes, and recover a large deviations principle and a central limit theorem in the adiabatic limit of a repeated interaction system. Abstract: “We analyze Landauer’s principle for repeated…

A universal construction of tight continuity bounds for entropies

A poster on my work with my supervisor Nilanjana Datta on uniform continuity bounds for the single-partite entropies, presented at the conference Beyond IID 2017 in Singapore in August 2017, and the main conference of the thematic semester Analysis in Quantum Information Theory in Paris in December 2017.

Maximum and minimum entropy states yielding local continuity bounds

We consider the geometry of the trace-ball of quantum states, find maximal and minimal states in a particular partial order called majorization, and use these states to construct local continuity bounds for quantum entropies. We also apply the theory of convex optimization to motivate the construction of the maximal state, and to find general optimality conditions for a particular class of…

Operational Duality between Classical Source Coding with QSI and C-Q Channel Coding

A poster on my work with Hao-Chung Cheng, my supervisor Nilanjana Datta, and Min-Hsiu Hsieh on operational duality of some quantum information-theoretic protocols, presented at the conference Beyond IID 2018 in Cambridge, UK in July 2018, and at Quantum Information Processing in Boulder, Colorado in January 2019.