Thanks to Loreto Parisi for assistance with this implementation.