Signed zeroes and complex literals
Explores the concept of signed zero in IEEE-754 floats, its mathematical implications, and a real-world issue with complex number discontinuities in Qiskit.
Jake Lishman is a research software developer at IBM Quantum, open source maintainer of Qiskit Terra, and language designer of OpenQASM 3, specializing in Python, Rust, C++, and quantum computing software.
21 articles from this blog
Explores the concept of signed zero in IEEE-754 floats, its mathematical implications, and a real-world issue with complex number discontinuities in Qiskit.
The author announces a change in the blog's content license from CC BY-SA 4.0 to the more permissive CC BY 4.0, citing a shift in perspective on licensing reciprocity.
Explores surprising and subtle aspects of Python's scoping rules, focusing on unusual cases like exception binding and garbage collection.
Explores how to mutate Python tuples, which are normally immutable, by using the C Foreign Function Interface (ctypes) to directly manipulate memory.
Explores useful GitHub Actions features like manual triggers and sparse matrices for CI/CD workflows, based on migrating from Travis CI.
Compares the accuracy and behavior of Fourier, Legendre, and Taylor series expansions when approximating functions with a limited number of terms.
Explains the mathematical derivation of generalized Fourier series expansions using orthogonal function bases and inner products.
Introduces linear algebra concepts like vector spaces and orthogonality as a foundation for understanding generalized Fourier series expansions.
Explores generalized Fourier series expansions using orthogonal function bases, with examples from Legendre polynomials and practical Jupyter notebook code.
A developer's final report on a Google Summer of Code project to integrate sparse and dense matrix support in QuTiP's core Qobj data type.
A technical overview of the new data-layer implementation in QuTiP 5, focusing on multiple data representations and efficient type conversions.
Explains the performance benefits of using contiguous memory in Cython for scientific computing and discusses debugging segfaults in low-level code.
A design proposal to improve performance of tensor-product dimension handling in QuTiP's Qobj by restructuring internal data and parsing.
A developer's guide to using Sphinx documentation tools for the QuTiP quantum physics library, written as part of a Google Summer of Code project.
Design discussion for new linear algebra data structures in QuTiP, focusing on lightweight vs. heavy implementations for performance and dispatch.
A design document outlining the separation of the data layer in QuTiP for a Google Summer of Code project, focusing on abstract interfaces and implementation strategies.
Guide to compiling OpenMP libraries on macOS by installing gcc via Homebrew and configuring linker flags to resolve runtime symbol errors.
A technical guide on setting up the Cython debugger (gdb extensions) on macOS, covering challenges with Python versions and compilation.
A guide to analyzing changes in an old Git branch that diverged from master, using git diff and git log with range syntax.
A student's blog about their Google Summer of Code 2020 project to improve the QuTiP quantum physics Python library's data layer.