zapata-engineering / orquestra-core

Core Orquestra meta-package
https://docs.orquestra.io/docs/core/index.html
Apache License 2.0
18 stars 8 forks source link

Create `exponential` wrapper class #15

Closed AthenaCaesura closed 2 years ago

AthenaCaesura commented 2 years ago

Problem

Our codebase implements gates through the abstract Gate protocol. It is common for our scientists to make use of exponentials of these gates. A simple application would be to find a solution to the time-independent shrodinger equation. Recently, we have created a new custom gate whenever we needed to raise a matrix to a power, but it would be nice to have a function which implements this directly.

Solution Description

Implement a class exponential wrapper around the Gate Protocol. We only need to calculate exponentials for gates without free parameters, so make sure your gate you are wrapping around does not have them. tip: exponential should be implemented similarly to the dagger wrapper class.

You will either have to test that the wrapped gate is hermitian or implement gates which are non-unitary. Currently, it isn't known whether or not gates can be non-unitary so you might have to test for yourself. 🙂

Deliverables

Affected repo: orquestra-quantum

ixime commented 2 years ago

Hi, I would want to give it a try. Do you have office hours at unitaryhack? It's the first time I see your repo

mstechly commented 2 years ago

Hi @ixime ! Yes we have office hours – I have filled in the form but it doesn't show up in the calendar yet.

mstechly commented 2 years ago

@ixime They are now live at https://unitary.fund/talks.html

ixime commented 2 years ago

Thanks @mstechly !

mstechly commented 2 years ago

Closed by https://github.com/zapatacomputing/orquestra-quantum/pull/28