Start by looking at: Maxwell-Boltzmann vs Bose-Einstein vs Fermi-Dirac statistics.
Quantum Mechanics for Engineers by Leon van Dommelen (2011) by
Ciro Santilli 35 Updated 2025-03-28 +Created 1970-01-01
Looks very impressive! Last update marked 2011 as of 2020.
Goes up to "A.15 quantum field theory in a Nanoshell", Ciro have to review it to see if there's anything worthwhile in that section.
Personal page says he retired as of 2020: www.eng.fsu.edu/~dommelen/ But hopefully he has more time for these notes!
And he appears to have his own lightweight markup language that transpiles to LaTeX called l2h: www.eng.fsu.edu/~dommelen/l2h/
Programmer's model of quantum computers by
Ciro Santilli 35 Updated 2025-03-28 +Created 1970-01-01
This is a quick tutorial on how a quantum computer programmer thinks about how a quantum computer works. If you know:a concrete and precise hello world operation can be understood in 30 minutes.
- what a complex number is
- how to do matrix multiplication
- what is a probability
Although there are several types of quantum computer under development, there exists a single high level model that represents what most of those computers can do, and we are going to explain that model here. This model is the is the digital quantum computer model, which uses a quantum circuit, that is made up of many quantum gates.
Beyond that basic model, programmers only may have to consider the imperfections of their hardware, but the starting point will almost always be this basic model, and tooling that automates mapping the high level model to real hardware considering those imperfections (i.e. quantum compilers) is already getting better and better.
The way quantum programmers think about a quantum computer in order to program can be described as follows:
- the input of a N qubit quantum computer is a vector of dimension N containing classic bits 0 and 1
- the quantum program, also known as circuit, is a unitary matrix of complex numbers that operates on the input to generate the output
- the output of a N qubit computer is also a vector of dimension N containing classic bits 0 and 1
To operate a quantum computer, you follow the step of operation of a quantum computer:
- set the input qubits to classic input bits (state initialization)
- press a big red "RUN" button
- read the classic output bits (readout)
Each time you do this, you are literally conducting a physical experiment of the specific physical implementation of the computer:and each run as the above can is simply called "an experiment" or "a measurement".
- setup your physical system to represent the classical 0/1 inputs
- let the state evolve for long enough
- measure the classical output back out
The output comes out "instantly" in the sense that it is physically impossible to observe any intermediate state of the system, i.e. there are no clocks like in classical computers, further discussion at: quantum circuits vs classical circuits. Setting up, running the experiment and taking the does take some time however, and this is important because you have to run the same experiment multiple times because results are probabilistic as mentioned below.
Unlike in a classical computer, the output of a quantum computer is not deterministic however.
But the each output is not equally likely either, otherwise the computer would be useless except as random number generator!
This is because the probabilities of each output for a given input depends on the program (unitary matrix) it went through.
Therefore, what we have to do is to design the quantum circuit in a way that the right or better answers will come out more likely than the bad answers.
We then calculate the error bound for our circuit based on its design, and then determine how many times we have to run the experiment to reach the desired accuracy.
The probability of each output of a quantum computer is derived from the input and the circuit as follows.
First we take the classic input vector of dimension N of 0's and 1's and convert it to a "quantum state vector" of dimension :
We are after all going to multiply it by the program matrix, as you would expect, and that has dimension !
Note that this initial transformation also transforms the discrete zeroes and ones into complex numbers.
For example, in a 3 qubit computer, the quantum state vector has dimension and the following shows all 8 possible conversions from the classic input to the quantum state vector:
000 -> 1000 0000 == (1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
001 -> 0100 0000 == (0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
010 -> 0010 0000 == (0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0)
011 -> 0001 0000 == (0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0)
100 -> 0000 1000 == (0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0)
101 -> 0000 0100 == (0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0)
110 -> 0000 0010 == (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)
111 -> 0000 0001 == (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)
This can be intuitively interpreted as:
- if the classic input is
000
, then we are certain that all three bits are 0.Therefore, the probability of all three 0's is 1.0, and all other possible combinations have 0 probability. - if the classic input is
001
, then we are certain that bit one and two are 0, and bit three is 1. The probability of that is 1.0, and all others are zero. - and so on
Now that we finally have our quantum state vector, we just multiply it by the unitary matrix of the quantum circuit, and obtain the dimensional output quantum state vector :
And at long last, the probability of each classical outcome of the measurement is proportional to the square of the length of each entry in the quantum vector, analogously to what is done in the Schrödinger equation.
For example, suppose that the 3 qubit output were:
Then, the probability of each possible outcomes would be the length of each component squared:i.e. 75% for the first, and 25% for the third outcomes, where just like for the input:
- first outcome means
000
: all output bits are zero - third outcome means
010
: the first and third bits are zero, but the second one is 1
All other outcomes have probability 0 and cannot occur, e.g.:
001
is impossible.Keep in mind that the quantum state vector can also contain complex numbers because we are doing quantum mechanics, but we just take their magnitude in that case, e.g. the following quantum state would lead to the same probabilities as the previous one:
This interpretation of the quantum state vector clarifies a few things:
- the input quantum state is just a simple state where we are certain of the value of each classic input bit
- the matrix has to be unitary because the total probability of all possible outcomes must be 1.0This is true for the input matrix, and unitary matrices have the probability of maintaining that property after multiplication.Unitary matrices are a bit analogous to self-adjoint operators in general quantum mechanics (self-adjoint in finite dimensions implies is stronger)This also allows us to understand intuitively why quantum computers may be capable of accelerating certain algorithms exponentially: that is because the quantum computer is able to quickly do an unitary matrix multiplication of a humongous sized matrix.If we are able to encode our algorithm in that matrix multiplication, considering the probabilistic interpretation of the output, then we stand a chance of getting that speedup.
As we could see, this model is was simple to understand, being only marginally more complex than that of a classical computer, see also: quantumcomputing.stackexchange.com/questions/6639/is-my-background-sufficient-to-start-quantum-computing/14317#14317 The situation of quantum computers today in the 2020's is somewhat analogous to that of the early days of classical circuits and computers in the 1950's and 1960's, before CPU came along and software ate the world. Even though the exact physics of a classical computer might be hard to understand and vary across different types of integrated circuits, those early hardware pioneers (and to this day modern CPU designers), can usefully view circuits from a higher level point of view, thinking only about concepts such as:as modelled at the register transfer level, and only in a separate compilation step translated into actual chips. This high level understanding of how a classical computer works is what we can call "the programmer's model of a classical computer". So we are now going to describe the quantum analogue of it.
- logic gates like AND, NOR and NOT
- a clock + registers
Bibliography:
- arxiv.org/pdf/1804.03719.pdf Quantum Algorithm Implementations for Beginners by Abhijith et al. 2020
Based on the Josephson effect. Yet another application of that phenomenal phenomena!
Philosophically, superconducting qubits are good because superconductivity is macroscopic.
It is fun to see that the representation of information in the QC basically uses an LC circuit, which is a very classical resonator circuit.
As mentioned at en.wikipedia.org/wiki/Superconducting_quantum_computing#Qubit_archetypes there are actually a few different types of superconducting qubits:
- flux
- charge
- phase
and hybridizations of those such as:
Input:
- microwave radiation to excite circuit, or do nothing and wait for it to fall to 0 spontaneously
- interaction: TODO
- readout: TODO
Quantum Transport, Lecture 16: Superconducting qubits by Sergey Frolov (2013)
Source. youtu.be/Kz6mhh1A_mU?t=1171 describes several possible realizations: charge, flux, charge/flux and phase.Building a quantum computer with superconducting qubits by Daniel Sank (2019)
Source. Daniel wears a "Google SB" t-shirt, which either means shabi in Chinese, or Santa Barbara. Google Quantum AI is based in Santa Barbara, with links to UCSB.- youtu.be/uPw9nkJAwDY?t=293 superconducting qubits are good because superconductivity is macroscopic. Explains how in non superconducting metal, each electron moves separatelly, and can hit atoms and leak vibration/photos, which lead to observation and quantum error
- youtu.be/uPw9nkJAwDY?t=429 made of aluminium
- youtu.be/uPw9nkJAwDY?t=432 shows the circuit diagram, and notes that the thing is basically a LC circuitusing the newly created just now Ciro's ASCII art circuit diagram notation. Note that the block on the right is a SQUID device.
+-----+ | | | +-+-+ | | | C X X | | | | +-+-+ | | +-----+
- youtu.be/uPw9nkJAwDY?t=471 mentions that the frequency between states 0 and 1 is chosen to be 6 GHz:This explains why we need to go to much lower temperatures than simply the superconducting temperature of aluminum!
- higher frequencies would be harder/more expensive to generate
- lower frequencies would mean less energy according to the Planck relation. And less energy means that thermal energy would matter more, and introduce more noise.6 GHz is aboutFrom the definition of the Boltzmann constant, the temperature which has that average energe of particles is of the order of:
A Brief History of Superconducting quantum computing by Steven Girvin (2021)
Source. - youtu.be/xjlGL4Mvq7A?t=138 superconducting quantum computer need non-linear components (too brief if you don't know what he means in advance)
- youtu.be/xjlGL4Mvq7A?t=169 quantum computing is hard because we want long coherence but fast control
Superconducting Qubits I Part 1 by Zlatko Minev (2020)
Source. The Q&A in the middle of talking is a bit annoying.
- youtu.be/eZJjQGu85Ps?t=2443 the first actually useful part, shows a transmon diagram with some useful formulas on it
Quantum circuits are the prevailing model of quantum computing as of the 2010's - 2020's
Interestingly, the very first programming language with an actual implementation was interpreted: Short Code in 1950.
This is not surprising, as interpreters are easier to write than compilers.
And just like modern scripting languages, it reduced execution speed by about 50x.
Allows you to connect two adjacent pins of a pin header. Sometimes used as a hardware configuration interface!
Feynman's first wife, previously his local-high school-days darling. Feynman was like an reversed Stephen Hawking: he married his wife knowing that she had a serious illness, while Hawking's wife married him knowing that as well. Except that in Feynman's case, the disease outcome (tuberculosis) was much more uncertain, and she tragically died in 1945 much earlier while Feynman was at Los Alamos Laboratory, while Hawking, despite his decline, lived much longer.
Feynman first noticed Arline on the beaches on the region of his home in Far Rockaway, in the Queens, New York, near Long Beach. She lived a bit further inland in Cedarhurst. Arline was beautiful and boys competed for her, but Richard persisted, stalking her at an after-school social league sponsored by the local Synagogue and joining an art class she went to, until he eventually won it out. The region was highly Jewish, and both were from Jewish families, as also suggested by their family names.
Reading about her death e.g. at Genius: Richard Feynman and Modern Physics by James Gleick (1994) is a major tearjerker, it's just too horrible. The book mentions on chapter "The Last Springtime" that at last, during the last months of her life, after much hesitation, they did fuck in the sanatorium Arline where was staying at in Albuquerque, the nearest major city to Los Alamos (154 km), despite the risk of Feynman being infected, which would be particularly serious given that Feynman would be in constant contact with students and possibly infect others as part of his career as a researcher/teacher. Feynman would visit her on weekends by bus, and stay in Los Alamos during the week.
Arline finally died on June 16th 1945, exactly one month before the Trinity nuclear test was carried out. The atomic bombings of Hiroshima and Nagasaki were a little later on 6 and 9 of August 1945.
On one of his last trips to Oak Ridge town late 1945, after her death, Feynman walked past a shop window and saw a pretty dress. He thought to himself, "Arline would have liked that", and the reminder made him cry for the first time after Arline's death.
It is even sadder to think that the first antibiotics for tuberculosis, streptomycin, finished its first major clinical trial at around 1948, not long after her death.
Ciro Santilli considers this tragedy a cause of Feynman was a huge womanizer during a certain period of his life.
Richard Feynman with his first wife Arline Greenbaum
. Source. TODO date, location, original source.Richard Feynman sitting with his first wife Arline Greenbaum reading
. Source. TODO date, location, original source. Seems like in a hospital.The film suggests that Feynman and Arline fucked a lot before the final Los Alamos fuck, that fuck story from book being only "fuck after tuberculosis diagnosis", after which they had to slow it down a bit.
This is likely true given how long they had been together for at that point. Ciro Santilli is such a pure soul for not having thought that! They were not very conservative at all those two.
Also their wedding got slowed down because there was a clause in Feynman's scholarship at Princeton University stating that the recipient could not be married, those were different times altogether.
There are unlisted articles, also show them or only show them.