This project is mirrored from Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
  1. 12 May, 2020 1 commit
  2. 28 Apr, 2020 1 commit
  3. 24 Apr, 2020 1 commit
  4. 20 Apr, 2020 1 commit
  5. 17 Apr, 2020 2 commits
  6. 14 Apr, 2020 1 commit
  7. 09 Apr, 2020 1 commit
  8. 03 Apr, 2020 1 commit
  9. 31 Mar, 2020 5 commits
  10. 26 Mar, 2020 5 commits
  11. 25 Mar, 2020 1 commit
  12. 23 Mar, 2020 1 commit
  13. 20 Mar, 2020 3 commits
  14. 19 Mar, 2020 1 commit
  15. 18 Mar, 2020 1 commit
    • Nguyen, Thien Minh's avatar
      Boilerplate code for pulse-level IR transformation · 207a57b0
      Nguyen, Thien Minh authored
      This is developed in parallel w/ another feature branch in QuaC.
      High-level flow: this pulse-level IR Transform plugin will retrieve system dynamics from a pulse-capable backend (e.g. QuaC) then using XACC quantum optimal control to perform pulse optimization.
      Target unitary will be derived from the XACC side (i.e. here) so that it is independent from backends.
      Signed-off-by: Nguyen, Thien Minh's avatarThien Nguyen <>
  16. 10 Mar, 2020 1 commit
  17. 09 Mar, 2020 1 commit
  18. 05 Mar, 2020 1 commit
  19. 02 Mar, 2020 1 commit
  20. 27 Feb, 2020 1 commit
    • Nguyen, Thien Minh's avatar
      Tidy up GOAT pulse optimization interface · e0569bfb
      Nguyen, Thien Minh authored
      -	Renaming: the service is now called "quantum-control", using "initial-parameters" as config key.
      -	Adding an empty argument overload for Optimizer::optimize() method
      -	Cleaning up the quantum optimal control interface by adding an internal PulseOptim service to the service registry, then wrap the GOAT optimizer underneath that common interface.
      -	Adding an option to specify target unitary as an Eigen matrix.
      -	Adding a unit test to cover that matrix input scenario.
      Tested by: running all unit tests.
      Signed-off-by: Nguyen, Thien Minh's avatarThien Nguyen <>
  21. 24 Feb, 2020 2 commits
    • Nguyen, Thien Minh's avatar
      Minor fixes · 5e891f18
      Nguyen, Thien Minh authored
      - Forgot to select the correct optimizer based on user config.
      - Add a more complex example/test: rather than using the Gaussian pulse (1 parameter), using a Fourier series (many parameters)
      Signed-off-by: Nguyen, Thien Minh's avatarThien Nguyen <>
    • Nguyen, Thien Minh's avatar
      Add XACC Optimal Control Optimizer service · 6ecae529
      Nguyen, Thien Minh authored
      Currently, this `optimal` control service only supports GOAT.
      -	Target unitary
      -	Hamiltonian: in the form [H0, (Hi, fi)….]
      Expr-tk to compile those symbolic expressions and to evaluate their values or derivatives during propagation.
      Add a simple unit test to verify the basic usage.
      Signed-off-by: Nguyen, Thien Minh's avatarThien Nguyen <>
  22. 21 Feb, 2020 2 commits
  23. 20 Feb, 2020 1 commit
    • Nguyen, Thien Minh's avatar
      Working example of GOAT · 181bdc0e
      Nguyen, Thien Minh authored
      This is still *Work-in-progress* at the moment.
      In particular, I'm using a simple L-BFGS lib for testing purposes.
      Interestingly enough, both NL-OPT and ML-PACK failed to optimize (using l-bfgs)
      this example. They were simply stuck. All impls followed the same trajectory but only
      the simple one was able to escape the local minima and hence converge.
      Want to get this checked-in as the baseline first while diving into why ML-PACK and NL-OPT
      cannot work out-of-box for this case. Perhaps there are some options that we can tweak.
      Tested by: the added unit test for simple X gate optimization
      Signed-off-by: Nguyen, Thien Minh's avatarThien Nguyen <>
  24. 18 Feb, 2020 2 commits
  25. 10 Feb, 2020 1 commit
    • Nguyen, Thien Minh's avatar
      Fix some compatibility issues · 2735dea5
      Nguyen, Thien Minh authored
      Testing QPT with QuaC, I was puzzled by the fact that `getPointerLike<Accelerator>` and `getPointerLike<CompositeInstruction>` were failing although I *did* send on those two parameters and the heterogenous map *does* contain those params, just that the templated functions are mismatched (possibly between the QuaC side and XACC side)
      My theory was that because these are all implicit instantiations, somehow, they can become mismatched (the order in which the compiler sees those instantiations), especially with external linkage (like QuaC).
      Anyway, by explicitly instantiating those (Accelerator and Composite), the issue is fixed.
      Also, fix a bug in QPT where the imaginary chi vector is always uninitialized (all zeros)
      Lastly, add an option to QPT to disable circuit optimization. When the circuit contains pulse instructions, the circuit optimizer doesn’t work correctly (looks like it may skip the pulse instruction and merge gates)
      Tested by: running XACC tests and QuaC QPT tests.
      Signed-off-by: Nguyen, Thien Minh's avatarThien Nguyen <>
  26. 07 Feb, 2020 1 commit