I guess back when I wrote it I didn't see the need given that single qubit gates along with CNOT are universal and they're implemented. I think airing on the side of 'as few features as is educational' was my mentality on this.
HN user
adamisntdead
I wrote something similar a couple of years ago - https://github.com/adamisntdead/QuSimPy
Happy to answer any questions people have, including on other simulation methods other than state vector!
I'm currently a mathematics undergraduate at Cambridge and there's quite a few students who live type notes in various different formats. I think that the majority of the learning curve comes when getting used to the format of writing in LaTeX, and once you have that down (so that typing both prose and mathematics takes little to no effort) you can type notes faster than you can write them - with the small exception of maybe matrices and certain advanced things which slow you down.
The benefit of having typed notes at least for me come from being able to search, having a good record of my own understanding of a course and also not having to rely on keeping handwritten notes safe. They also look pretty which is a bonus for studying from them.
Examples:
- Analysis I (which have been edited): https://adamkelly.me/files/ia-analysis-i/analysis-i.pdf
- Graph Theory (not edited but diagrams added): https://adamkelly.me/files/ii-graph-theory/graph-theory.pdf
As a side note, one other thing I do is write short 'handouts' on topics that I think I have something to say about. For example https://adamkelly.me/files/handouts/direct-products/direct-p....
If we're talking about Fun maths, there's a couple of really good channels that look at Olympiad problems.
- vEnhance (https://www.youtube.com/c/vEnhance), an MIT student and IMO Gold Medalist who solved problems live on stream (and plays various games)
- Osman Nal (https://www.youtube.com/c/OsmanNal), looking at problems ranging from AMC/AIME to IMO 3/6s
- Michael Greenberg (https://www.youtube.com/channel/UC3mhbGC7kQgzkXT9fceNOwA), a geometry enthusiast who also live solves problems, though the production quality isn't amazing
And of course, Michael Penn (but that's in the post above)!
I'm a big fan of this video from Reducible on Huffman codes: https://www.youtube.com/watch?v=B3y0RsVCyrw, and from 3Blue1Brown on Hamming codes: https://www.youtube.com/watch?v=X8jsijhllIA
I'm surprised that something like point compression can even be patented, considering that it's relatively straightforward mathematically (all of the difficulty seems to lie in the number theory to compute a solution, which I assume wasn't invented by whoever owned the patent)...
Because the pacemakers rotated, they weren't the same all of the way through.
That article had a really nice depth to it, answered all of my questions that I had yesterday when I first saw the project.
Well if you get assigned bad seats you might not come back, for this sort of thing I would say happy customers would lead back into more money
I have been thinking about this sort of thing quite a lot - while I do think it's wrong to split people up on a plane, it is quite an interesting concept.
A similar but less malicious case would be one of organising the seating on a train or in a cinema, but rather then biasing against families, biasing against other, unrelated groups.
For example - in a cinema, you usually do not wish to sit right beside another group when the rest of the seats are free. Still, you don't want to be that far from the center.
How do you design an algorithm for this? How will it scale? How can you make the most number of groups happy with their seats? How do you avoid having individual seats that nobody wants?
Quantum computing won't require much extra power that python can't provide, the only heavy processing will be circuit generation which is (as far as we can see at the moment) fine to use python for.
In the sort term though there's a big place for languages like C, C++ and Rust for things like simulations which need to be done
As someone who read this with an editor full of OpenCL kernels, I think apple must really have missed the point of these sort of frameworks - heterogeneous computing.
If I wanted the best possible speed, latest features ect. I would write multiple back ends in things like CUDA.
I choose OpenCL because I can develop code on my Macbook pro, and run that on a computer with a discrete GPU on a different operating system, and have a fair amount of confidence that it would work.
:/
Me too, and they say it will be over $500 to fix as they need a whole new casing
Love the idea - what API are you using for summarization?
I am always impressed by the amount of content posted about Quantum Computing on hn. As a subject I find really interesting, it's really encouraging to see other people with the same interest, even if it is just casual!
I also read those notes, and to a large extent they were my first introduction to the field of quantum computing after studying some quantum mechanics
I wrote a little about why rust below!
Hello, author here - The choice to use rust mainly came from the fact I have more experience with it than with C++. Also, the compiler makes it really easy to write good code.
This, along with really simple testing, benchmarking and the ease of adding dependencies (through crates) made it a good choice. There are almost no downsides from using rust, provided you have experience with it!
A bash script works too: https://github.com/adamisntdead/devmymac
I would also have to recommend "Quantum Mechanics, The Theoretical Minimum" by Leonard Susskind, if you wish to go a little bit further into general quantum mechanics
You should check out these videos, one of them might give you an understanding!
- https://www.youtube.com/watch?v=JhHMJCUmq28 | Quantum Computers Explained - https://www.youtube.com/watch?v=IrbJYsep45E | The Mathematics of Quantum Computers - https://www.youtube.com/watch?v=wUwZZaI5u0c | Hacking at Quantum Speed with Shor's Algorithm - https://www.youtube.com/playlist?list=PL1826E60FD05B44E4 | A series by the author of the standard textbook
These are videos I particularly like!
Yep, observables in quantum mechanics are represented by hermitian matrices
You can, but it would be very slow! This implementation gets really really slow around 15/16 qubits.
I am currently working on implementing shors algorithm into my main, simulation library. I already have grovers algorithm! https://qcgpu.github.io/qcgpu-rust/book/algorithms/grover.ht...
It depends! If you use a lot of scratch qubits, it can be useful to use sparse vectors, but if you are going to be doing a lot of superpositions / entangling many qubits, this isn't as effective, and performance suffers a lot. Libraries such as libquantum (written in C) use sparse state vectors, whereas the QCGPU library uses dense state vectors (as it is being stored on the GPU, it doesn't really impact the performance of the computer it's being simulated on). I benchmarked it, and the rust one was way faster for everything, apart from the initialization of registers and the application of some controlled gates
That's pretty much it! There obviously is loads of optimizations that can be done, but it obscures the pretty standard linear algebra that is used to represent and calculate the states of the quantum computer!
A well-written version using OpenCL and written in rust is also available: http://github.com/qcgpu/qcgpu-rust if you are interested! Always looking for feedback
There is an abundance of tools for reasearchers now, each with specific purposes. Libraries such as libquantum have different uses to libraries such as qiskit.
Writing static site generators is my favourite way of learning a language. Usually covers all the basics, libraries, FS, error checking and so on
Funny, I thought the same thing
I have to say, I feel productive in a clean setup. It helps me not get distracted by the mess, and also makes it easy to find stuff
I'm pretty good at Math and Programming. As for topics, I really don't know...