q-optimize / c3

Toolset for control, calibration and characterization of physical systems
https://c3-toolset.readthedocs.io/
Apache License 2.0
69 stars 35 forks source link

Faster legacy response function #209

Closed nwittler closed 2 years ago

nwittler commented 2 years ago

What

Reimplement the old response function with FFT.

Why

The old implementation was inefficient, frequently broke graph mode compilation and slowed down testing.

How

The old response function is a clone of ResponseFFT with padding and sampling adjusted to almost perfectly recreate the old behaviour.

Remarks

The very first pixel in the convoluted signal appears to be wrong no matter what conventions are used. It seems to be an artefact of the old method. Other pixels are recreated to very high accuracy.

Checklist

Please include and complete the following checklist. Your Pull Request is (in most cases) not ready for review until the following have been completed. You can create a draft PR while you are still completing the checklist. Check the Contribution Guidelines for more details. You can mark an item as complete with the - [x] prefix

codecov[bot] commented 2 years ago

Codecov Report

Merging #209 (ca49410) into dev (1f286f9) will increase coverage by 0.12%. The diff coverage is 100.00%.

@@            Coverage Diff             @@
##              dev     #209      +/-   ##
==========================================
+ Coverage   74.68%   74.81%   +0.12%     
==========================================
  Files          38       38              
  Lines        5534     5558      +24     
==========================================
+ Hits         4133     4158      +25     
+ Misses       1401     1400       -1     
Impacted Files Coverage Δ
c3/generator/devices.py 71.24% <100.00%> (-0.37%) :arrow_down:
c3/utils/tf_utils.py 67.42% <100.00%> (+2.39%) :arrow_up:
c3/qiskit/c3_gates.py 98.43% <0.00%> (+0.25%) :arrow_up:
c3/qiskit/c3_backend.py 93.75% <0.00%> (+0.72%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 1f286f9...ca49410. Read the comment docs.