Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calibration module #20

Closed
wants to merge 32 commits into from
Closed

Conversation

eggerdj
Copy link
Contributor

@eggerdj eggerdj commented Mar 18, 2021

Summary

This is the first PR for the calibration module.

Details and comments

The PR introduces one calibration experiment RoughAmplitude, the classes needed to store calibration schedules and parameters, the base class for calibration analysis (derived from BaseAnalysis), and other classes needed by the calibration module.

TODOs

eggerdj and others added 8 commits March 19, 2021 08:36
…. Egger.

* Previous commit log from the old repo is:

commit 0e869b40dcc19685034ff336c7b3170b93be88de (HEAD -> calmod_draft_inst_def, origin/calmod_draft_inst_def)
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 16 19:11:38 2021 +0100

    * Moved metadata into circuits.
    * Moved to execute, i.e. no more assemble in BaseCalibrationExperiment.
    * Removed marginalization in data processing.

commit 957acf7587ce84553fb6dc81fa3d4450925239d6
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 16 11:31:29 2021 +0100

    * Added TODO.

commit 85bd8088c631ce3fa72e6cd5cda9f92b6a8f0400
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Feb 15 13:29:30 2021 +0100

    * Cleaned-up the CR calibration example.
    * Fixed a bug with data in BaseCalibrationAnalysis.

commit b018194b32b841479d2250a139617a98f1c3f209
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Sun Feb 14 16:55:34 2021 +0100

    * Added CosineDecayFit
    * Renamed InstructionsDefinitionV2 to CalibrationsDefinition and removed old inst def.
    * Removed to dict in ParameterValue.
    * Implemented stub of Ramsey (currently not functional due to lacking functionality in qiskit).

commit 65cd71de88d11509a3e0f6fd6f9fe4873aa00e3d
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Feb 11 13:37:23 2021 +0100

    * Cleaned up spectroscopy.
    * Added default_analysis method to BaseCalibrationExperiment for convenience.
    * Added LorentzFit.
    * Added qubit frequencies from the backend to the InstDef.

commit c1ab4e4b8beaf1a4e6ab04d39a2f6860fbeffb98
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 9 19:37:19 2021 +0100

    * Added RoughDrag calibration.
    * Fixed issues with multi-series plotting.
    * Added function to get the minimum of a cos.
    * Improved docstring quality here and there.

commit 83910fb37e6a0964d469a06cc95332467ee51dd2
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 9 12:43:48 2021 +0100

    * Moved current calibrations to InstDefV2 methodology.
    * Fixed BaseJob -> JobV1 issue in analysis.py.

commit 9c80a9d88a68b23f40b1ca79c02230a3288a3f94
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Feb 5 19:05:26 2021 +0100

    * Draft of V2 inst def.

commit 3a472e13d93306e418bdeb2d0c6870a895372a82 (naoki/calmod_draft, calmod_draft)
Merge: 7881495 5b4eaa9
Author: Daniel Egger <38065505+eggerdj@users.noreply.github.com>
Date:   Mon Dec 14 17:29:37 2020 +0100

    Merge pull request #17 from eggerdj/calmod_draft_update_on_analysis

    Update parameters

commit 5b4eaa98e29bda952e59ff37554ee2b82c231fd9 (origin/calmod_draft_update_on_analysis)
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 14 16:38:26 2020 +0100

    * Added updated pulses to the RoughCRAmplitude cal.
(base) daniel@daniel-OMEN:qiskit-ignis$ git log -n 100
commit 0e869b40dcc19685034ff336c7b3170b93be88de (HEAD -> calmod_draft_inst_def, origin/calmod_draft_inst_def)
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 16 19:11:38 2021 +0100

    * Moved metadata into circuits.
    * Moved to execute, i.e. no more assemble in BaseCalibrationExperiment.
    * Removed marginalization in data processing.

commit 957acf7587ce84553fb6dc81fa3d4450925239d6
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 16 11:31:29 2021 +0100

    * Added TODO.

commit 85bd8088c631ce3fa72e6cd5cda9f92b6a8f0400
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Feb 15 13:29:30 2021 +0100

    * Cleaned-up the CR calibration example.
    * Fixed a bug with data in BaseCalibrationAnalysis.

commit b018194b32b841479d2250a139617a98f1c3f209
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Sun Feb 14 16:55:34 2021 +0100

    * Added CosineDecayFit
    * Renamed InstructionsDefinitionV2 to CalibrationsDefinition and removed old inst def.
    * Removed to dict in ParameterValue.
    * Implemented stub of Ramsey (currently not functional due to lacking functionality in qiskit).

commit 65cd71de88d11509a3e0f6fd6f9fe4873aa00e3d
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Feb 11 13:37:23 2021 +0100

    * Cleaned up spectroscopy.
    * Added default_analysis method to BaseCalibrationExperiment for convenience.
    * Added LorentzFit.
    * Added qubit frequencies from the backend to the InstDef.

commit c1ab4e4b8beaf1a4e6ab04d39a2f6860fbeffb98
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 9 19:37:19 2021 +0100

    * Added RoughDrag calibration.
    * Fixed issues with multi-series plotting.
    * Added function to get the minimum of a cos.
    * Improved docstring quality here and there.

commit 83910fb37e6a0964d469a06cc95332467ee51dd2
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 9 12:43:48 2021 +0100

    * Moved current calibrations to InstDefV2 methodology.
    * Fixed BaseJob -> JobV1 issue in analysis.py.

commit 9c80a9d88a68b23f40b1ca79c02230a3288a3f94
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Feb 5 19:05:26 2021 +0100

    * Draft of V2 inst def.

commit 3a472e13d93306e418bdeb2d0c6870a895372a82 (naoki/calmod_draft, calmod_draft)
Merge: 7881495 5b4eaa9
Author: Daniel Egger <38065505+eggerdj@users.noreply.github.com>
Date:   Mon Dec 14 17:29:37 2020 +0100

    Merge pull request #17 from eggerdj/calmod_draft_update_on_analysis

    Update parameters

commit 5b4eaa98e29bda952e59ff37554ee2b82c231fd9 (origin/calmod_draft_update_on_analysis)
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 14 16:38:26 2020 +0100

    * Added updated pulses to the RoughCRAmplitude cal.

commit d0f56a54134551bbdf86b49bf08ec95e0b8ad533
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Dec 10 14:42:50 2020 +0100

    * Improved docstrings.

commit 6983ce0412d42b1ca5d0ffc8568f5ae42337a5da
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Dec 10 14:37:38 2020 +0100

    * Added a mechanisme to update several pulses at once in RoughAmplitude.

commit eb10052291e09d8f6b9fdb3f1dbbcd308f3dc4ec
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Dec 10 14:06:51 2020 +0100

    * Moved some of the fit retrieving logic to fit_utils.py.
    * Did a bit of refactoring on RoughSpectroscopy.

commit 230c4afa42c34b1892e2b68acfc4c6a1cf36dd91
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 15:03:11 2020 +0100

    * Added init to BaseCalibrationExperiment and moved some variables of the child classes to the parent.

commit 3852844a861176237aa8b67998ea9b27a31c5d43
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 12:07:02 2020 +0100

    * Added instruction type Play to filtering in cross_resonance.py.

commit 9ef5629b6f04bc214ba6d7fb081244f265a27d64
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 11:35:19 2020 +0100

    * Added more docstrings in cross_resonance.py.

commit ea8d80d62dbcf590ebea10cd40f0a5ec23bce12c
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 11:27:57 2020 +0100

    * Removed xp from cr cal.

commit b3aa763f25d4c3b70295f08840726373f727e1a5
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 11:11:42 2020 +0100

    * Used get_channel in RoughAmplitude.

commit 1ee4ffca0f35359aa322d3cdd92bd7d39f8a1a7d
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 11:07:32 2020 +0100

    * Moved the split parameter name method to PulseParameterTable.

commit 7242ce6c8779c831b5d164c934a082e45d913c1f
Author: Daniel Egger <38065505+eggerdj@users.noreply.github.com>
Date:   Wed Dec 9 10:56:41 2020 +0100

    Update qiskit/ignis/experiments/calibration/cal_base_generator.py

    Co-authored-by: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>

commit 68dbaa636c6a2c1b508135f99681cd5cc4f3d5aa
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Dec 8 16:35:53 2020 +0100

    * Added update_calibrations function to update the parameters in the table.
    * Refactored code to default to global tag it a given scope is not found in the pulse param table.
    * Implemented method to get the fraction of a period for a fit.

commit 788149515015e6623d4cc886ccfff3c3e99445e9
Merge: 2765632 adedfa9
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Mon Dec 7 20:55:33 2020 +0900

    Merge pull request #16 from eggerdj/calmod_draft_2q

    Calmod draft 2q

commit adedfa9bda5295da6c180b51bfa70aac4c4d1dd9
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 12:52:53 2020 +0100

    * Refactored get_channel_name to get_channel.

commit b708d80f99bc1b63b14a5a7e63502aa757926e3e
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 12:16:48 2020 +0100

    * Fixed bug in get_channel_name.

commit 3a3fec51b5c9b689dd7525404b744b60aa2e65be
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 12:11:19 2020 +0100

    * Added ch_type input argument to get_channel_name.

commit 3fcb2dd21284ffcb706ed8fd5fb54dc9740f472b
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 12:00:33 2020 +0100

    * Improved type hints.
    * removed pulse_names from RoughCRAmplitude.

commit 9ef6c31fed1c5014778863856cdefdf18bbb5e95
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 10:00:00 2020 +0100

    * Renamed pulse names and improved its docstring.

commit c4de9a026c17073c8e313410ed276c38bd8bb163
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 09:29:49 2020 +0100

    * Improved type hints.
    * Renamed gate_name in CR cal and made it optional.

commit 61cfc99797cfeb2af61e97ea4b04d6cc3c2ad613
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Dec 3 10:20:49 2020 +0100

    * Style.

commit 5954113f529469c01b54b12f9a1e6959951cb526
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Dec 3 10:02:30 2020 +0100

    * Fixed bug due to edge condition in cal_metadata.py.

commit c9f7e55ffac8ac00343c6974da2f383e1311643a
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 2 13:55:41 2020 +0100

    * Refactored generators.

commit dda098e64dc03c6fea7d5ed4f0153667ddd57a50
Merge: 996563a 2765632
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Dec 1 19:45:11 2020 +0100

    Merge branch 'calmod_draft' of github.com:nkanazawa1989/qiskit-ignis into calmod_draft_2q

commit 2765632f56ed210d31feb9a61dc7e0a926188d6b
Merge: e19d828 218aab2
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Tue Dec 1 17:24:45 2020 +0900

    Merge pull request #14 from eggerdj/calmod_draft_rough_amp

    Refactor Rough Amp to use inst_def.

commit 218aab2dbac175dec236deb9bdc1bbb547767533
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 30 18:11:41 2020 +0100

    * Replaced calibration __init__ with __post_init__.

commit 996563a659af2d785dd7861ec71154afccb3ee9f
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 30 18:06:42 2020 +0100

    * First draft of CR example with new framework.

commit f3c554d8fc838c0637e202751d33fc72c6e80c29
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 30 13:10:46 2020 +0100

    * Added init to CalMetadata.
    * Removed DC and used positive part of FFT for Cosin initial guess.
    * Fixed workflow naming bugs.
    * removed initial_layout in generation as circuit takes this into account.
    *

commit 42d4d6799394bc99ca61eeba7a0b90d8651cd1ef
Merge: 82b91bc e19d828
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Sat Nov 28 18:26:15 2020 +0100

    Merge branch 'calmod_draft' into calmod_draft_rough_amp

commit e19d8284970527bb84d2c2328ee8b3ecd853403b
Merge: c08fedb 65e5d76
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Sat Nov 28 01:12:38 2020 +0900

    Merge pull request #15 from nkanazawa1989/calmod_schedule_dsl

    Schedule DSL and AST

commit 82b91bc83d79e6e4073057914b602f7e8cc151d8
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Nov 27 15:17:09 2020 +0100

    * Updated signature of RoughamplitudeCal.

commit 65e5d7614bc59cf51b7bae136872d858d9ba0114 (naoki/calmod_schedule_dsl)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Thu Nov 26 21:02:10 2020 +0900

    add global scope and shape to table

commit 755dd98aa57ad324d311333354c9324f16b15ca8
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Thu Nov 26 04:34:02 2020 +0900

    update data structure, pulse shape replacement

commit ac304b25d414ab7a0ad431cbe21b27b1ec8f6664
Merge: bd23158 8bbda2d
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 25 01:30:26 2020 +0900

    Merge branch 'calmod_schedule_dsl' of github.com:nkanazawa1989/qiskit-ignis into calmod_schedule_dsl

commit bd2315842943885ab85231336bc1f1ae63c2e399
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 25 01:30:13 2020 +0900

    review comments

commit 8bbda2d736d0bc0c6060a6f1e21d8ef6ead44e92
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 25 01:19:36 2020 +0900

    Update qiskit/ignis/experiments/calibration/instruction_data/compiler.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit d9172e0ae9dd9e4238e381b63d6cf25bc097ca03
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 25 01:18:35 2020 +0900

    Update qiskit/ignis/experiments/calibration/instruction_data/compiler.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit 42aaa445ca7aef10ebbeb3892d176a94ef1454a9
Merge: cbe09ca 2aac632
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 25 00:59:53 2020 +0900

    Merge branch 'calmod_schedule_dsl' of github.com:nkanazawa1989/qiskit-ignis into calmod_schedule_dsl

commit 2aac632193c25d32696c7dfd97d22d9c787c8528
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Tue Nov 24 21:48:59 2020 +0900

    Update qiskit/ignis/experiments/calibration/instruction_data/compiler.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit cbe09ca790d10a9ac9b32d152aee1ad8240221e0
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 24 04:21:58 2020 +0900

    fix parameter duplication bug

commit 3f330b6f8cc74321679a409e8798f5f659978e05
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 24 04:02:43 2020 +0900

    add interface with database

commit 0b2f813627d02f0e94c7b7e7aa9ff570cfa03090
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Mon Nov 23 17:53:20 2020 +0900

    update import and type hints

commit b77d776f4492c7a598d12f2f1d4a397c0f63da14
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Mon Nov 23 10:29:39 2020 +0900

    update constructor

commit b62e6a66a94f460e15916a811cf16dcdf88a871e
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Mon Nov 23 10:21:00 2020 +0900

    add temp interface with database

commit d96e37500466f01fef8bdc53cb3cf5d6561f6549
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Sun Nov 22 17:07:22 2020 +0900

    add cal DSL compiler

commit 5c725a7fb2c4e97ebb15438908dd872c55312c9a
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Nov 18 23:09:34 2020 +0100

    * Starting to refactor Rough Amp to use inst_def.

commit c08fedb122fa3cc1f04f5b1518ccd82f83cf199c
Merge: fbd09eb f3d43d3
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Thu Nov 19 00:22:42 2020 +0900

    Merge pull request #13 from nkanazawa1989/calmod_fitter_update

    General analysis base class with dataframe

commit f3d43d3d16771a831e708fc0a03f52577b4a3252 (naoki/calmod_fitter_update)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 18 20:25:42 2020 +0900

    Daniel's feedback

commit 7ed302f0a8479f4cca04c0de7d2c7f10f847f82d
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 18 17:39:50 2020 +0900

    add error

commit 0161fc41c9da7f30089eb68e11781c1fc8ade7a6
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 18 15:45:59 2020 +0900

    fix bugs and add new mock

commit 4467a78c5d12955ae17547f3347768603c53b690
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 18 14:39:02 2020 +0900

    add generic base analysis class
    * generic base class
    * add new mock to test analysis
    * update data processing steps

commit fbd09eba4914c9b944713ebb333ad887108885d0
Merge: 3c258ca 6d67f54
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Tue Nov 17 23:52:24 2020 +0900

    Merge pull request #12 from eggerdj/calmod_draft_schedule_db

    First draft of the class to manage calibrations as circuits

commit 6d67f5488ca5bdddc2073fc3ae43c471248c3b79 (origin/calmod_draft_schedule_db)
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 17 15:35:38 2020 +0100

    * Added flag for u channels in create_z_instruction.

commit e48934e8314f6516d90af312c8a4f78703c098ba
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 17 12:56:15 2020 +0100

    * Added z instruction creation method.

commit 6ee4e9fc669288cd9022034c9638b207ef6c1031
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 17 12:37:33 2020 +0100

    * Added pulse_parameter_table property.

commit 5d3a1a5766a51463b7696a02609ea655c2f3da12
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 17 12:34:16 2020 +0100

    * made get_composite private.

commit 3bd5c5e4c82882b85e4eda1d1faf1b76e4eea7d2
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 17 12:28:49 2020 +0100

    * Added from_backend method.
    * replaced _get_qubits with _channel_map.

commit c55138b1ab7749195511adb3ba36ef5f8b771ab9
Author: Daniel Egger <38065505+eggerdj@users.noreply.github.com>
Date:   Tue Nov 17 09:29:20 2020 +0100

    Apply suggestions from code review

    Co-authored-by: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>

commit 5101740cacd17c9953236b0046e113142e06550a
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Nov 13 17:14:27 2020 +0100

    * schedules are now deep copied when queried from the instructions so as not to permenantly
      bind the parameters.

commit 43a010fda99ae80e72c0c5e5d798bbf4a82fa041
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Nov 13 15:34:57 2020 +0100

    * Added recursive nature to the instructions table.

commit 880f258c55949a349ffbf606b414f5cbf2980378
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Nov 13 14:58:20 2020 +0100

    * Refactored to schedules.

commit 9313578f73244bcb40833588e49fb024e58417e7
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Nov 13 13:37:41 2020 +0100

    * Added backend to init and channel mapping instance.
    * Added handling of control channels. This now raises some issues to deal with.

commit 480b17c3ba0ddf2a1e243f5a274bb96a19586fe8
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Nov 12 21:25:52 2020 +0100

    * Added integration with PulseTable.

commit 238d9fb4e21205603de2f4273f293801cf120612
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Nov 12 19:46:14 2020 +0100

    * Bug fixing.

commit 2cfc9ab3a2f30ad42c1dcf086c9f4a2b8161316a
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Nov 12 17:09:25 2020 +0100

    * Fixed bugs with tubles as keys.

commit febe29925a8293d117bf1dc4644f18e30204ecc5
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Nov 12 16:49:02 2020 +0100

    * First draft of the class to manage calibrations as circuits.

commit 3c258cabaa046e4fc3bae5837a7bf27f680863ca
Merge: a567e2f 55b42ed
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Thu Nov 12 20:05:58 2020 +0900

    Merge pull request #9 from nkanazawa1989/calmod_db2

    Database part2

commit 55b42ed647d8519b7e03c5b4fe0286a004ba1ff0 (naoki/calmod_db2)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 20:34:34 2020 +0900

    add channel qubit mapping

commit f5b62784e2d031c0b1ce28872560ff8f1b8548ed
Merge: a47b124 a567e2f
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:37:29 2020 +0900

    Merge branch 'calmod_draft' of github.com:nkanazawa1989/qiskit-ignis into calmod_db2

commit a567e2fca8699c2a002b179aa371c087fb5352db
Merge: 4c5774a 20be4c2
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 11 18:33:13 2020 +0900

    Merge pull request #11 from nkanazawa1989/calmod_fake_tables

    Add 2q pulse parameters to table

commit 20be4c2304370dfc0fed3551aff62761d9444ed1 (naoki/calmod_fake_tables)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:32:41 2020 +0900

    update rotary pulse qubit mapping

commit dc6af60dafd52aa67043fe64853efc7f15736108
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:28:03 2020 +0900

    update channel index

commit a47b124e88bf6f7b955299e1e90d11f285034dff
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:26:28 2020 +0900

    add channel mapping

commit 5cb4bde1f0add1456bc1a54482a33eca8a151869
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:19:48 2020 +0900

    add opposite cx drive

commit a32666300cdfd7d5e7993c45e3c3cd431224828f
Merge: 4fc0c8e 4c5774a
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:00:52 2020 +0900

    Merge branch 'calmod_draft' of github.com:nkanazawa1989/qiskit-ignis into calmod_fake_tables

commit 4c5774aea66aa4b0272dbbbbc79f8805352a3658
Merge: 3c92b5f 37ce607
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 11 17:56:46 2020 +0900

    Merge pull request #8 from nkanazawa1989/calmod_db1

    Database part1

commit e1e2e8777b5e496c4f0fc7c58bb61b36713a27c4
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 17:38:17 2020 +0900

    readd qubits

commit 367c35b88ea63f82f4824de0aaa411ebc9f21abf
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 16:54:32 2020 +0900

    fix bugs

commit e82c99d7d6f5b8b590c685a7153b4f054c752187
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 15:49:17 2020 +0900

    remove qubit from pulse table and allow unbound parameter

commit 15ca53e20e79c7e8c4ed4d8f23e65e9cc759ff81
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 15:04:57 2020 +0900

    remove qubit from parameter hash generation

commit c0d9b772aaa8ef866bb594be12821cb4ece05038
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 13:03:32 2020 +0900

    fix bug

commit 4fc0c8e364cf11b618d09f1b9ea1aef4d2c835ea
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 11:49:50 2020 +0900

    update mock

commit 37ce607f7ad0786732bb21e45da0e9bd19843402 (naoki/calmod_db1)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 10:36:55 2020 +0900

    comments from Daniel

commit 06c340c05524cd2e2c992cb54b445b3ee0c05e1b
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 10:31:24 2020 +0900

    comments from Daniel

commit 78c43e5d43be026d47b5e8302a93331208e89e68
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 10 23:37:58 2020 +0900

    update mock

commit 2dde240a4adace1a813dc5ca6cab5fa8e0692e50
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 10 23:04:01 2020 +0900

    add interface

commit 42a963e2441107e3cfd1cea7611eb5090ce2912b
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 10 23:02:33 2020 +0900

    code cleanup

commit a35c74d6b1ec0bb2f5bb10e06085d2e88e6f80ed
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 10 22:58:40 2020 +0900

    add database components

commit 3c92b5fe448ad85518f223e22b15b39b73282ce2
Merge: 46568cc ed5bedd
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Tue Nov 10 02:44:32 2020 +0900

    Merge pull request #5 from eggerdj/calmod_draft

    Workflow and general refactoring

commit ed5bedd84fd258987a48dcea658cad3cda5b2915 (origin/calmod_draft)
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 9 16:30:40 2020 +0100

    * Moved docstring.

commit 9b327dabd44b937c2fb4352503948605a5811e97
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 9 16:26:16 2020 +0100

    * Moved docstring and removed unused import.

commit 0c11298433a40c0c27ec54ebd11d5e48d7c5768d
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 9 16:22:19 2020 +0100

    * Removed unnecessary import in cal_table.py
(base) daniel@daniel-OMEN:qiskit-ignis$ git log -n 500
commit 0e869b40dcc19685034ff336c7b3170b93be88de (HEAD -> calmod_draft_inst_def, origin/calmod_draft_inst_def)
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 16 19:11:38 2021 +0100

    * Moved metadata into circuits.
    * Moved to execute, i.e. no more assemble in BaseCalibrationExperiment.
    * Removed marginalization in data processing.

commit 957acf7587ce84553fb6dc81fa3d4450925239d6
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 16 11:31:29 2021 +0100

    * Added TODO.

commit 85bd8088c631ce3fa72e6cd5cda9f92b6a8f0400
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Feb 15 13:29:30 2021 +0100

    * Cleaned-up the CR calibration example.
    * Fixed a bug with data in BaseCalibrationAnalysis.

commit b018194b32b841479d2250a139617a98f1c3f209
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Sun Feb 14 16:55:34 2021 +0100

    * Added CosineDecayFit
    * Renamed InstructionsDefinitionV2 to CalibrationsDefinition and removed old inst def.
    * Removed to dict in ParameterValue.
    * Implemented stub of Ramsey (currently not functional due to lacking functionality in qiskit).

commit 65cd71de88d11509a3e0f6fd6f9fe4873aa00e3d
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Feb 11 13:37:23 2021 +0100

    * Cleaned up spectroscopy.
    * Added default_analysis method to BaseCalibrationExperiment for convenience.
    * Added LorentzFit.
    * Added qubit frequencies from the backend to the InstDef.

commit c1ab4e4b8beaf1a4e6ab04d39a2f6860fbeffb98
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 9 19:37:19 2021 +0100

    * Added RoughDrag calibration.
    * Fixed issues with multi-series plotting.
    * Added function to get the minimum of a cos.
    * Improved docstring quality here and there.

commit 83910fb37e6a0964d469a06cc95332467ee51dd2
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Feb 9 12:43:48 2021 +0100

    * Moved current calibrations to InstDefV2 methodology.
    * Fixed BaseJob -> JobV1 issue in analysis.py.

commit 9c80a9d88a68b23f40b1ca79c02230a3288a3f94
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Feb 5 19:05:26 2021 +0100

    * Draft of V2 inst def.

commit 3a472e13d93306e418bdeb2d0c6870a895372a82 (naoki/calmod_draft, calmod_draft)
Merge: 7881495 5b4eaa9
Author: Daniel Egger <38065505+eggerdj@users.noreply.github.com>
Date:   Mon Dec 14 17:29:37 2020 +0100

    Merge pull request #17 from eggerdj/calmod_draft_update_on_analysis

    Update parameters

commit 5b4eaa98e29bda952e59ff37554ee2b82c231fd9 (origin/calmod_draft_update_on_analysis)
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 14 16:38:26 2020 +0100

    * Added updated pulses to the RoughCRAmplitude cal.

commit d0f56a54134551bbdf86b49bf08ec95e0b8ad533
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Dec 10 14:42:50 2020 +0100

    * Improved docstrings.

commit 6983ce0412d42b1ca5d0ffc8568f5ae42337a5da
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Dec 10 14:37:38 2020 +0100

    * Added a mechanisme to update several pulses at once in RoughAmplitude.

commit eb10052291e09d8f6b9fdb3f1dbbcd308f3dc4ec
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Dec 10 14:06:51 2020 +0100

    * Moved some of the fit retrieving logic to fit_utils.py.
    * Did a bit of refactoring on RoughSpectroscopy.

commit 230c4afa42c34b1892e2b68acfc4c6a1cf36dd91
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 15:03:11 2020 +0100

    * Added init to BaseCalibrationExperiment and moved some variables of the child classes to the parent.

commit 3852844a861176237aa8b67998ea9b27a31c5d43
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 12:07:02 2020 +0100

    * Added instruction type Play to filtering in cross_resonance.py.

commit 9ef5629b6f04bc214ba6d7fb081244f265a27d64
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 11:35:19 2020 +0100

    * Added more docstrings in cross_resonance.py.

commit ea8d80d62dbcf590ebea10cd40f0a5ec23bce12c
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 11:27:57 2020 +0100

    * Removed xp from cr cal.

commit b3aa763f25d4c3b70295f08840726373f727e1a5
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 11:11:42 2020 +0100

    * Used get_channel in RoughAmplitude.

commit 1ee4ffca0f35359aa322d3cdd92bd7d39f8a1a7d
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 9 11:07:32 2020 +0100

    * Moved the split parameter name method to PulseParameterTable.

commit 7242ce6c8779c831b5d164c934a082e45d913c1f
Author: Daniel Egger <38065505+eggerdj@users.noreply.github.com>
Date:   Wed Dec 9 10:56:41 2020 +0100

    Update qiskit/ignis/experiments/calibration/cal_base_generator.py

    Co-authored-by: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>

commit 68dbaa636c6a2c1b508135f99681cd5cc4f3d5aa
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Dec 8 16:35:53 2020 +0100

    * Added update_calibrations function to update the parameters in the table.
    * Refactored code to default to global tag it a given scope is not found in the pulse param table.
    * Implemented method to get the fraction of a period for a fit.

commit 788149515015e6623d4cc886ccfff3c3e99445e9
Merge: 2765632 adedfa9
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Mon Dec 7 20:55:33 2020 +0900

    Merge pull request #16 from eggerdj/calmod_draft_2q

    Calmod draft 2q

commit adedfa9bda5295da6c180b51bfa70aac4c4d1dd9
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 12:52:53 2020 +0100

    * Refactored get_channel_name to get_channel.

commit b708d80f99bc1b63b14a5a7e63502aa757926e3e
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 12:16:48 2020 +0100

    * Fixed bug in get_channel_name.

commit 3a3fec51b5c9b689dd7525404b744b60aa2e65be
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 12:11:19 2020 +0100

    * Added ch_type input argument to get_channel_name.

commit 3fcb2dd21284ffcb706ed8fd5fb54dc9740f472b
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 12:00:33 2020 +0100

    * Improved type hints.
    * removed pulse_names from RoughCRAmplitude.

commit 9ef6c31fed1c5014778863856cdefdf18bbb5e95
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 10:00:00 2020 +0100

    * Renamed pulse names and improved its docstring.

commit c4de9a026c17073c8e313410ed276c38bd8bb163
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Dec 7 09:29:49 2020 +0100

    * Improved type hints.
    * Renamed gate_name in CR cal and made it optional.

commit 61cfc99797cfeb2af61e97ea4b04d6cc3c2ad613
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Dec 3 10:20:49 2020 +0100

    * Style.

commit 5954113f529469c01b54b12f9a1e6959951cb526
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Dec 3 10:02:30 2020 +0100

    * Fixed bug due to edge condition in cal_metadata.py.

commit c9f7e55ffac8ac00343c6974da2f383e1311643a
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Dec 2 13:55:41 2020 +0100

    * Refactored generators.

commit dda098e64dc03c6fea7d5ed4f0153667ddd57a50
Merge: 996563a 2765632
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Dec 1 19:45:11 2020 +0100

    Merge branch 'calmod_draft' of github.com:nkanazawa1989/qiskit-ignis into calmod_draft_2q

commit 2765632f56ed210d31feb9a61dc7e0a926188d6b
Merge: e19d828 218aab2
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Tue Dec 1 17:24:45 2020 +0900

    Merge pull request #14 from eggerdj/calmod_draft_rough_amp

    Refactor Rough Amp to use inst_def.

commit 218aab2dbac175dec236deb9bdc1bbb547767533
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 30 18:11:41 2020 +0100

    * Replaced calibration __init__ with __post_init__.

commit 996563a659af2d785dd7861ec71154afccb3ee9f
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 30 18:06:42 2020 +0100

    * First draft of CR example with new framework.

commit f3c554d8fc838c0637e202751d33fc72c6e80c29
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 30 13:10:46 2020 +0100

    * Added init to CalMetadata.
    * Removed DC and used positive part of FFT for Cosin initial guess.
    * Fixed workflow naming bugs.
    * removed initial_layout in generation as circuit takes this into account.
    *

commit 42d4d6799394bc99ca61eeba7a0b90d8651cd1ef
Merge: 82b91bc e19d828
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Sat Nov 28 18:26:15 2020 +0100

    Merge branch 'calmod_draft' into calmod_draft_rough_amp

commit e19d8284970527bb84d2c2328ee8b3ecd853403b
Merge: c08fedb 65e5d76
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Sat Nov 28 01:12:38 2020 +0900

    Merge pull request #15 from nkanazawa1989/calmod_schedule_dsl

    Schedule DSL and AST

commit 82b91bc83d79e6e4073057914b602f7e8cc151d8
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Nov 27 15:17:09 2020 +0100

    * Updated signature of RoughamplitudeCal.

commit 65e5d7614bc59cf51b7bae136872d858d9ba0114 (naoki/calmod_schedule_dsl)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Thu Nov 26 21:02:10 2020 +0900

    add global scope and shape to table

commit 755dd98aa57ad324d311333354c9324f16b15ca8
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Thu Nov 26 04:34:02 2020 +0900

    update data structure, pulse shape replacement

commit ac304b25d414ab7a0ad431cbe21b27b1ec8f6664
Merge: bd23158 8bbda2d
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 25 01:30:26 2020 +0900

    Merge branch 'calmod_schedule_dsl' of github.com:nkanazawa1989/qiskit-ignis into calmod_schedule_dsl

commit bd2315842943885ab85231336bc1f1ae63c2e399
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 25 01:30:13 2020 +0900

    review comments

commit 8bbda2d736d0bc0c6060a6f1e21d8ef6ead44e92
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 25 01:19:36 2020 +0900

    Update qiskit/ignis/experiments/calibration/instruction_data/compiler.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit d9172e0ae9dd9e4238e381b63d6cf25bc097ca03
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 25 01:18:35 2020 +0900

    Update qiskit/ignis/experiments/calibration/instruction_data/compiler.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit 42aaa445ca7aef10ebbeb3892d176a94ef1454a9
Merge: cbe09ca 2aac632
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 25 00:59:53 2020 +0900

    Merge branch 'calmod_schedule_dsl' of github.com:nkanazawa1989/qiskit-ignis into calmod_schedule_dsl

commit 2aac632193c25d32696c7dfd97d22d9c787c8528
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Tue Nov 24 21:48:59 2020 +0900

    Update qiskit/ignis/experiments/calibration/instruction_data/compiler.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit cbe09ca790d10a9ac9b32d152aee1ad8240221e0
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 24 04:21:58 2020 +0900

    fix parameter duplication bug

commit 3f330b6f8cc74321679a409e8798f5f659978e05
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 24 04:02:43 2020 +0900

    add interface with database

commit 0b2f813627d02f0e94c7b7e7aa9ff570cfa03090
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Mon Nov 23 17:53:20 2020 +0900

    update import and type hints

commit b77d776f4492c7a598d12f2f1d4a397c0f63da14
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Mon Nov 23 10:29:39 2020 +0900

    update constructor

commit b62e6a66a94f460e15916a811cf16dcdf88a871e
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Mon Nov 23 10:21:00 2020 +0900

    add temp interface with database

commit d96e37500466f01fef8bdc53cb3cf5d6561f6549
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Sun Nov 22 17:07:22 2020 +0900

    add cal DSL compiler

commit 5c725a7fb2c4e97ebb15438908dd872c55312c9a
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Nov 18 23:09:34 2020 +0100

    * Starting to refactor Rough Amp to use inst_def.

commit c08fedb122fa3cc1f04f5b1518ccd82f83cf199c
Merge: fbd09eb f3d43d3
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Thu Nov 19 00:22:42 2020 +0900

    Merge pull request #13 from nkanazawa1989/calmod_fitter_update

    General analysis base class with dataframe

commit f3d43d3d16771a831e708fc0a03f52577b4a3252 (naoki/calmod_fitter_update)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 18 20:25:42 2020 +0900

    Daniel's feedback

commit 7ed302f0a8479f4cca04c0de7d2c7f10f847f82d
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 18 17:39:50 2020 +0900

    add error

commit 0161fc41c9da7f30089eb68e11781c1fc8ade7a6
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 18 15:45:59 2020 +0900

    fix bugs and add new mock

commit 4467a78c5d12955ae17547f3347768603c53b690
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 18 14:39:02 2020 +0900

    add generic base analysis class
    * generic base class
    * add new mock to test analysis
    * update data processing steps

commit fbd09eba4914c9b944713ebb333ad887108885d0
Merge: 3c258ca 6d67f54
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Tue Nov 17 23:52:24 2020 +0900

    Merge pull request #12 from eggerdj/calmod_draft_schedule_db

    First draft of the class to manage calibrations as circuits

commit 6d67f5488ca5bdddc2073fc3ae43c471248c3b79 (origin/calmod_draft_schedule_db)
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 17 15:35:38 2020 +0100

    * Added flag for u channels in create_z_instruction.

commit e48934e8314f6516d90af312c8a4f78703c098ba
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 17 12:56:15 2020 +0100

    * Added z instruction creation method.

commit 6ee4e9fc669288cd9022034c9638b207ef6c1031
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 17 12:37:33 2020 +0100

    * Added pulse_parameter_table property.

commit 5d3a1a5766a51463b7696a02609ea655c2f3da12
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 17 12:34:16 2020 +0100

    * made get_composite private.

commit 3bd5c5e4c82882b85e4eda1d1faf1b76e4eea7d2
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 17 12:28:49 2020 +0100

    * Added from_backend method.
    * replaced _get_qubits with _channel_map.

commit c55138b1ab7749195511adb3ba36ef5f8b771ab9
Author: Daniel Egger <38065505+eggerdj@users.noreply.github.com>
Date:   Tue Nov 17 09:29:20 2020 +0100

    Apply suggestions from code review

    Co-authored-by: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>

commit 5101740cacd17c9953236b0046e113142e06550a
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Nov 13 17:14:27 2020 +0100

    * schedules are now deep copied when queried from the instructions so as not to permenantly
      bind the parameters.

commit 43a010fda99ae80e72c0c5e5d798bbf4a82fa041
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Nov 13 15:34:57 2020 +0100

    * Added recursive nature to the instructions table.

commit 880f258c55949a349ffbf606b414f5cbf2980378
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Nov 13 14:58:20 2020 +0100

    * Refactored to schedules.

commit 9313578f73244bcb40833588e49fb024e58417e7
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Nov 13 13:37:41 2020 +0100

    * Added backend to init and channel mapping instance.
    * Added handling of control channels. This now raises some issues to deal with.

commit 480b17c3ba0ddf2a1e243f5a274bb96a19586fe8
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Nov 12 21:25:52 2020 +0100

    * Added integration with PulseTable.

commit 238d9fb4e21205603de2f4273f293801cf120612
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Nov 12 19:46:14 2020 +0100

    * Bug fixing.

commit 2cfc9ab3a2f30ad42c1dcf086c9f4a2b8161316a
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Nov 12 17:09:25 2020 +0100

    * Fixed bugs with tubles as keys.

commit febe29925a8293d117bf1dc4644f18e30204ecc5
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Nov 12 16:49:02 2020 +0100

    * First draft of the class to manage calibrations as circuits.

commit 3c258cabaa046e4fc3bae5837a7bf27f680863ca
Merge: a567e2f 55b42ed
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Thu Nov 12 20:05:58 2020 +0900

    Merge pull request #9 from nkanazawa1989/calmod_db2

    Database part2

commit 55b42ed647d8519b7e03c5b4fe0286a004ba1ff0 (naoki/calmod_db2)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 20:34:34 2020 +0900

    add channel qubit mapping

commit f5b62784e2d031c0b1ce28872560ff8f1b8548ed
Merge: a47b124 a567e2f
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:37:29 2020 +0900

    Merge branch 'calmod_draft' of github.com:nkanazawa1989/qiskit-ignis into calmod_db2

commit a567e2fca8699c2a002b179aa371c087fb5352db
Merge: 4c5774a 20be4c2
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 11 18:33:13 2020 +0900

    Merge pull request #11 from nkanazawa1989/calmod_fake_tables

    Add 2q pulse parameters to table

commit 20be4c2304370dfc0fed3551aff62761d9444ed1 (naoki/calmod_fake_tables)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:32:41 2020 +0900

    update rotary pulse qubit mapping

commit dc6af60dafd52aa67043fe64853efc7f15736108
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:28:03 2020 +0900

    update channel index

commit a47b124e88bf6f7b955299e1e90d11f285034dff
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:26:28 2020 +0900

    add channel mapping

commit 5cb4bde1f0add1456bc1a54482a33eca8a151869
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:19:48 2020 +0900

    add opposite cx drive

commit a32666300cdfd7d5e7993c45e3c3cd431224828f
Merge: 4fc0c8e 4c5774a
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 18:00:52 2020 +0900

    Merge branch 'calmod_draft' of github.com:nkanazawa1989/qiskit-ignis into calmod_fake_tables

commit 4c5774aea66aa4b0272dbbbbc79f8805352a3658
Merge: 3c92b5f 37ce607
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 11 17:56:46 2020 +0900

    Merge pull request #8 from nkanazawa1989/calmod_db1

    Database part1

commit e1e2e8777b5e496c4f0fc7c58bb61b36713a27c4
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 17:38:17 2020 +0900

    readd qubits

commit 367c35b88ea63f82f4824de0aaa411ebc9f21abf
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 16:54:32 2020 +0900

    fix bugs

commit e82c99d7d6f5b8b590c685a7153b4f054c752187
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 15:49:17 2020 +0900

    remove qubit from pulse table and allow unbound parameter

commit 15ca53e20e79c7e8c4ed4d8f23e65e9cc759ff81
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 15:04:57 2020 +0900

    remove qubit from parameter hash generation

commit c0d9b772aaa8ef866bb594be12821cb4ece05038
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 13:03:32 2020 +0900

    fix bug

commit 4fc0c8e364cf11b618d09f1b9ea1aef4d2c835ea
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 11:49:50 2020 +0900

    update mock

commit 37ce607f7ad0786732bb21e45da0e9bd19843402 (naoki/calmod_db1)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 10:36:55 2020 +0900

    comments from Daniel

commit 06c340c05524cd2e2c992cb54b445b3ee0c05e1b
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 11 10:31:24 2020 +0900

    comments from Daniel

commit 78c43e5d43be026d47b5e8302a93331208e89e68
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 10 23:37:58 2020 +0900

    update mock

commit 2dde240a4adace1a813dc5ca6cab5fa8e0692e50
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 10 23:04:01 2020 +0900

    add interface

commit 42a963e2441107e3cfd1cea7611eb5090ce2912b
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 10 23:02:33 2020 +0900

    code cleanup

commit a35c74d6b1ec0bb2f5bb10e06085d2e88e6f80ed
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 10 22:58:40 2020 +0900

    add database components

commit 3c92b5fe448ad85518f223e22b15b39b73282ce2
Merge: 46568cc ed5bedd
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Tue Nov 10 02:44:32 2020 +0900

    Merge pull request #5 from eggerdj/calmod_draft

    Workflow and general refactoring

commit ed5bedd84fd258987a48dcea658cad3cda5b2915 (origin/calmod_draft)
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 9 16:30:40 2020 +0100

    * Moved docstring.

commit 9b327dabd44b937c2fb4352503948605a5811e97
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 9 16:26:16 2020 +0100

    * Moved docstring and removed unused import.

commit 0c11298433a40c0c27ec54ebd11d5e48d7c5768d
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 9 16:22:19 2020 +0100

    * Removed unnecessary import in cal_table.py

commit beb97177e7192a8665e660da221d4d0cfac43c72
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 9 16:16:55 2020 +0100

    * Reverted cal_table.py to multiply parameter with caomplex phase.

commit da917b23669c61d6c1a5601c686473b71bec2253
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 9 13:45:00 2020 +0100

    * Improved docstring.

commit 0503f638f66b9d03a29b87196b69856bd78940db
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 9 13:31:08 2020 +0100

    * Removed comment.

commit e79264a48a05fb9c2bd69cfafc66c528fbba47bc
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Nov 6 17:44:30 2020 +0100

    * General refactoring and improving transparancy:
      - Moved workflow into Analysis. This simplified BaseCalibrationExperiment quite a bit.
      - Improved docstrings.
      - Made template circuits non-private as the user may which to see them.
      - Refactored imports a bit.
      - Parameters of Generator are now a property so that we can see them.
      - Added test in PulseTable to not do anything to 'amp' when it is a ParameterExpression.

commit 46568cce9765f1f0d18139874a149bfae40fafb8
Merge: fbfea77 6dbde2f
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 4 21:23:16 2020 +0900

    Merge pull request #4 from nkanazawa1989/calmod_replace_db

    Replace old CalibrationTable with ParameterTable and cleanup codebase

commit 6dbde2f8a46d313f2c93c4d0d48cf6616dfedea6 (naoki/calmod_replace_db)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 4 21:19:05 2020 +0900

    generator pulse defaults to drag

commit 6d60c3b6aebd5b43bd7d5b38a1dbc385489296fc
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 4 21:09:20 2020 +0900

    update import

commit 43c1930dba4d04e12df475fd09b2085a682b9df9
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 4 21:05:32 2020 +0900

    Update qiskit/ignis/experiments/calibration/generators/single_qubit.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit a78d330e0668820a81f7f6489eac40d997bad722
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 4 21:05:20 2020 +0900

    Update qiskit/ignis/experiments/calibration/generators/single_qubit.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit e12e2e67aa330a36ded4c3c7f6c4b890d235f817
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 4 21:04:53 2020 +0900

    Update qiskit/ignis/experiments/calibration/methods/basic_1q.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit 50872ee8b6ac2a680131b2f026dfcf2d99cbff51
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 4 20:35:16 2020 +0900

    Update qiskit/ignis/experiments/calibration/cal_base_generator.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit 09c8e14cc0b7310ec43c90fb75fca23a5d84f9d5
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 4 19:45:21 2020 +0900

    Update qiskit/ignis/experiments/calibration/cal_base_generator.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit 802d2876705dbd1e2a296d7e5039ffcd5137ebd3
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 4 19:45:11 2020 +0900

    Update qiskit/ignis/experiments/calibration/cal_base_generator.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit e3fe97e1e6680a34062e0f21eb1cc280d0d87758
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 4 19:45:01 2020 +0900

    Update qiskit/ignis/experiments/calibration/cal_base_generator.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit 5322900d6f6012abd69bbff8a5ac280ee7a40f27
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 4 19:06:50 2020 +0900

    update table name and docstring

commit c425383101475c826b6b3f3def89fc2d727ecb86
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 4 04:57:43 2020 +0900

    update series name

commit eb08a62e50eb10aa60362f3d05e7164996e37597
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 4 04:53:33 2020 +0900

    fix bug

commit baa2d814fadb3ba1b9e6249b8c88b134f9bcd98d
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 4 04:51:01 2020 +0900

    update comment

commit b4059d9c9375687c182df03e645d53bd57a48e4d
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 4 04:37:25 2020 +0900

    replace old db and cleanup codebase

commit fbfea77eac1596102905648dc77ecd0b9f4b5fea
Merge: 93d1816 722dedb
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Wed Nov 4 02:05:36 2020 +0900

    Merge pull request #2 from nkanazawa1989/calmod_db_update

    update database

commit 722dedb804d62b985e31f8fe32394083ae68ed71 (naoki/calmod_db_update)
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 4 01:58:17 2020 +0900

    fix docstring

commit f1a46668a06d272c943c89eba134cb31ef8e99d3
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 4 01:55:13 2020 +0900

    fix docstring

commit d24b26247b2261b4164a7c493fbb0edb6e9fc256
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Nov 4 01:50:17 2020 +0900

    add demo1

commit 0e32a2798c8de2258639ff029ca2ee163c01753a
Merge: db65062 3332404
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Nov 3 23:51:27 2020 +0900

    Merge branch 'calmod_db_update' of github.com:nkanazawa1989/qiskit-ignis into calmod_db_update

commit 3332404b7c019fd7150a7c865ec9ea4cd70e1d31
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Tue Nov 3 23:14:59 2020 +0900

    Update qiskit/ignis/experiments/calibration/cal_table.py

    Co-authored-by: Daniel Egger <38065505+eggerdj@users.noreply.github.com>

commit 93d181666ef7dd8dcf1af11532ba36f17d95de7f
Merge: 246b9b8 fc0bd08
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Tue Nov 3 18:36:32 2020 +0900

    Merge pull request #3 from eggerdj/calmod_draft

    [WIP] Analysis framework

commit fc0bd08ad8c0653b72dc414a29159ed288ae6afd
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 3 09:55:47 2020 +0100

    * Added colormap for plotting.

commit 8e5f47c6cc5574cfb6236fc49618383fbc2c3846
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Tue Nov 3 09:35:57 2020 +0100

    * Refactored imports.

commit 4d26d080f9bb457c5e47e2486dbafde6afc50e61
Author: Daniel Egger <38065505+eggerdj@users.noreply.github.com>
Date:   Tue Nov 3 09:20:58 2020 +0100

    Apply suggestions from code review

    Co-authored-by: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>

commit 32340e906ec7d491c8fdb571a8f790ff8c617d2d
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 2 18:59:16 2020 +0100

    * Renamed BaseCalibrationAnalysis to Calibration1DAnalysis.
    * Allowed curve_fit to fail with try catch.
    * Slightly change xvals and yvals and how they are used in plot.
    * Refactored how metadata is processed:
      - Needed to initialize CalibrationMetadata from dict.

commit d2e53ee1e5000cc98780b11707b3cb31552b47dd
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Mon Nov 2 12:30:14 2020 +0100

    * Added metadata class for calibration.
    * Refactored x and y value extraction.
    * Refactored SinglePulseGenerator.

commit db6506236c60bc7d9c42fe527d7dc11e78111273
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Mon Nov 2 10:59:16 2020 +0900

    remove complex amplitude

commit bb32106df21c2d26f5b286470b3935efc90dfbdf
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Mon Nov 2 10:42:41 2020 +0900

    update mock

commit ff2f45aa46ac2ea9da483073cda9fc2b229c3710
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Mon Nov 2 09:48:47 2020 +0900

    update local parameter database

commit 246b9b8a89a8f554c664b2b46ca798596e0272b7
Merge: dc62467 e0bfb45
Author: Naoki Kanazawa <39517270+nkanazawa1989@users.noreply.github.com>
Date:   Fri Oct 30 20:05:56 2020 +0900

    Merge pull request #1 from eggerdj/calmod_draft

    * Added alternative example of RabiGenerator.

commit e0bfb45713440788aaf2ff71ffd417780d6d1048
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Oct 30 11:57:28 2020 +0100

    * Added pulse_envelope.
    * Fixed channel to which the pulse is applied.

commit 88f6f9732006987d6487884396b6ecf16620e60e
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Oct 30 11:37:51 2020 +0100

    * Refactored code to single qubit.
    * Added self.tamplate_qcs.

commit e98d6da38214d92f3c44a237b8d43a308e095f96
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Fri Oct 30 09:34:04 2020 +0100

    * Added name.
    * Added metadata.
    * Changed to SetFrequency.

commit 2a9ced5b738f169f20450b50d188070cfcfc27a2
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Oct 29 12:12:43 2020 +0100

    * changed freq_shift and phase_shift to frequency and phase.

commit 31ddc0c1ee42c948f8445d2cc6dc0b688c3f8d2f
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Thu Oct 29 12:01:48 2020 +0100

    * Refactored RabiGenerator to make it more versatile.

commit 86014ff006d36735dbf5a5404618c652a203b8c1
Author: Daniel Egger <deg@zurich.ibm.com>
Date:   Wed Oct 28 17:36:47 2020 +0100

    * Added alternative example of RabiGenerator.

commit dc62467d149be1b4279bfb9e320626b2e108380b
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Oct 20 18:29:00 2020 +0900

    remove notebook

commit 593b8f6cb4236199dc7449c5a4d5ae799029059d
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Thu Oct 15 03:55:42 2020 +0900

    add demo1

commit 1774f117e7eec9346cadd60cd87b6eaa86fd40ff
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Oct 14 19:06:34 2020 +0900

    add fitting module

commit a3c6f072f7d51134de1f40edfe018a3d62442905
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Oct 14 14:55:22 2020 +0900

    implement data processing routines

commit b80213d913d1962bbe0e7d0619c9c6f48cabf762
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Oct 14 12:04:39 2020 +0900

    update model of routines

commit 00715c9905e8389c036fd551143d59bebdbcaa37
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Tue Oct 13 18:18:43 2020 +0900

    add workflow

commit ba2f949bf7a9726c6f694216081e18398f1c2d35
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Sat Oct 10 16:14:36 2020 +0900

    add calibration builder

commit 95707516e545a330d80dfb796871844a30894ca6
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Sep 30 22:37:41 2020 +0900

    update notebook

commit 8d242d0f2abe6fd68a3818a5183cfe025a9c1b2b
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Sep 30 22:36:16 2020 +0900

    update notebook

commit b7cc6e6eb00a73da6815211115e72d8d2a46471c
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Sep 30 22:28:38 2020 +0900

    add notebook

commit 927262a5b7f0f610c35415a1437ec2eb77326bb5
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Sep 30 22:23:45 2020 +0900

    add rabi example

commit 7c9088a55c68b48000d688a7311a1746826f0fd3
Author: knzwnao <knzwnao@jp.ibm.com>
Date:   Wed Sep 30 19:50:14 2020 +0900

    wip

Co-authored-by: Naoki Kanazawa <nkanazawa1989@gmail.com>
* Refactored data processing package.
* Added body or _run_analysis.
* Added plotting to BaseCalibrationAnalysis.
* Added experiment_type to CalibrationMetadata.
@eggerdj eggerdj force-pushed the calibration_module branch from 910fe66 to 1588040 Compare March 19, 2021 07:49
@eggerdj eggerdj changed the title [WIP] Calibration module Calibration module Mar 20, 2021
@yaelbh
Copy link
Collaborator

yaelbh commented Mar 22, 2021

If the current code is good then it's better to merge it, and adjust it to #19 when #19 is ready, rather than wait for #19.

@eggerdj
Copy link
Contributor Author

eggerdj commented Mar 22, 2021

I'm fine with merging without adjusting to #19. Furthermore, #19 may benefit from the DataProcessor in this PR. One round of feedback on the high-level implementation is however still needed here.

Copy link
Collaborator

@nkanazawa1989 nkanazawa1989 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Daniel for excellent work. I think this is really good start of discussion. I also think data processing chain should be exported as a standard data acquisition logic of the qiskit experiment. Perhaps it's better to separate it from this PR.

def __init__(self,
qubit: int,
cals: CalibrationsDefinition,
gate_name: str,
Copy link
Collaborator

@nkanazawa1989 nkanazawa1989 Mar 21, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should define a class variable

__calibration_objective__ = {
    'gates': ['x90p', 'xp'],
    'parameter_name: 'amp'
}

This template should be defined in the superclass. Then gate_name and parameter_name will be optional. This is closer to the user experience of backend codebase. Also note that the rough amplitude can update multiple gates, so signature should be list of str.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good idea but needs to be extended. In your example we also need to specify the angle for the rabi calibration. I suggest adding an extra field called options so that your example above becomes:

__calibration_objective__ = {
    'gates': ['x90p', 'xp'],
    'options': [np.pi/2, np.pi],
    'parameter_name: 'amp'
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See c67acbd

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See e.g. fa3f3eb for a follow up.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's go for an instance variable.


for param in schedule.parameters:
if param.name not in self._params:
self._params[param.name] = {}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Users need to manage parameter names for every schedule so that not overlapping with existing name, when constructing schedule? I think this is very annoying.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is acceptable as in most cases we only need a very limited number of schedules. If you have a better alternative to suggest please do so.

self._n_qubits = backend.configuration().num_qubits
self._n_uchannels = backend.configuration().n_uchannels
self._config = backend.configuration()
self._params = {'qubit_freq': {}}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In our conventional database this has been organized as somewhat like Dict[qubit(s)][pulse name][param name]. Do you think this new data structure, i.e. Dict[param name][channel] is reasonable? @wshanks

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does feel like some structure is lost going with just (channel, name) rather than (channel, schedule/gate name, parameter name). The result of this is that the parameter names end up getting both the gate and the name stuck together (like amp_xp).

I thought the main reason that globally unique parameter names were required was that Schedule.assign_parameters replaces parameters in a schedule with their values, so the schedule must be deep copied before calling assign_parameters and that would create new Parameter instances with new UUID's. However, looking through the qiskit-terra code, I see that Parameter bypasses __copy__ and __deepcopy__, so the UUID's are actually preserved: https://github.com/Qiskit/qiskit-terra/blob/bdc73936d626d14057e0c95e7daaa25b7490020f/qiskit/circuit/parameter.py#L69-L73 So maybe parameter UUID's could be used?

Also, I see that Schedule.assign_parameters actually creates a new pulse with substituted parameters replaced with their values: https://github.com/Qiskit/qiskit-terra/blob/bdc73936d626d14057e0c95e7daaa25b7490020f/qiskit/pulse/parameter_manager.py#L212-L217 I note this because I had thought it might just add a value into the Parameter object that would affect other schedules using that Parameter but it does not.

One benefit of using parameter UUID's is that parameters could be linked across schedules if a table of UUID: (channel, name) or UUID: (channel, schedule name, parameter name) were kept. In the current implementation, parameter substitution is based on channel plus name, so you can't use the same parameter in schedules on two different channels. If the UUID's could be used, CalibrationsDefinition could add to a table of UUID: [(channel, schedule, parameter), ...] each time a schedule is added and then when generating circuits it could find which (channel, schedule, parameter) tuple has a calibrated value in CalibrationsDefinition's table of calibrated values and assign that value to uses of the Parameter with that UUID. One potential problem: how to handle the ambiguous case where there are calibrated values in CalibrationsDefinition for two different (channel, schedule name, parameter name) tuples that have the same Parameter instance?

I have been trying to think of what the trade offs are with using globally unique names per channel versus scoping the names within a schedule name. Here is what I thought of:

  • Since parameters will mostly be specific to a schedule, scoping names to a schedule enforces more consistent naming: (channel=0, schedule=xp, parameter=amp) vs. possible confusion of amp_xp vs. xp_amp.
  • Scoping to a schedule allows one to query the parameter database for all parameters associated with a specific schedule.
  • I thought there might be some benefit to using generic parameter names (like amp and angle) to let the user define generic schedules to be reused for different gates but in practice schedules get built by code and that code could be put in a loop or a function to generate copies of the schedule with different parameters, so the parameter names don't matter.
  • What about parameters that are not associated with a specific schedule like qubit_freq? Perhaps there could be some default all label for parameters not associated with a specific schedule. Otherwise that case is more straightforward for the global name case.

else:
self._params[name][ch].append(value)

def get_channel_index(self, qubits: Tuple, chan: PulseChannel) -> int:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this is needed? Seems like this is due to parameter name is not enough unique, i.e. add_parameter_value requires channel index. Dictionary key can only uniquely identify parameter, and name attached to parameter is defined in global scope.

We can internally rename attached parameter when schedule is added, or internally define mapping of unique parameter name to Parameter object uuid.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We cannot rely on Parameter UUID since the template schedules and their parameters are copied when generating new schedules with parameter values assigned. I would have much preferred to use UUIDs to make the parameters unique but this is not possible with the way parameters function in Qiskit.

Independently of UUIDs, get_channel_index is needed to accommodate control channels. Consider the CR gate schedule and write it out using schedules where all channel indices are parameters.

except KeyError:
raise CalibrationError('No parameter value for %s and channel %s' % (name, chan.name))

def get_schedule(self, name: str, qubits: Tuple[int, ...],
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of defining free_params (i.e. experimental class needs to search for parameter name, since naming is up to users), we can generate value dict and use new pulse.call function behavior in the builder to bind parameters on the fly from the parameter database.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you elaborate on how this would work?

eggerdj and others added 7 commits March 24, 2021 10:58
Co-authored-by: Naoki Kanazawa <nkanazawa1989@gmail.com>
Co-authored-by: Naoki Kanazawa <nkanazawa1989@gmail.com>
* Add class variable __calibration_objective__
* Refactored package __init__
* Moved amplitudes in RoughAmplitude to a run-time variable.
eggerdj added a commit to eggerdj/qiskit-experiments that referenced this pull request Mar 26, 2021
Co-authored-by: Naoki Kanazawa <nkanazawa1989@gmail.com>
@eggerdj eggerdj mentioned this pull request Mar 26, 2021
f0_guess = np.abs(fft_freq[np.argmax(np.abs(fft_data[0:len(fft_freq) // 2]))])

if f0_guess == 0:
# sampling duration is shorter than oscillation period
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is pretty similar to the existing code stack. One thing it does that is not done here is interpolate the data (here it is assumed that the xvals are equally spaced). Also, it takes a few points around the peak in the fft and fits a lorentzian to that to fine tune the frequency. I don't know how important that is.

class CosineFit(BaseCalibrationAnalysis):
r"""Fit with $F(x) = a \cos(2\pi f x + \phi) + b$."""

def initial_guess(self, xvals: np.ndarray, yvals: np.ndarray) -> Iterator[np.ndarray]:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the existing code stack, initial guess and fit function are grouped and I haven't noticed anyone needing to deviate from that. A generic function could be factored out of the fit_function method and reused by multiple classes if it is found to be useful to share it.

The examples here could all be static methods, but I suppose in general an analysis class could have options (like a polynomial analysis class that takes a degree as an argument).

Raises:
CalibrationError: if the fit function is not recognized.
"""
if issubclass(analysis, CosineFit):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not make get_period_fraction and get_min_location be methods of the Analysis class since they are implementing behavior on a per-type basis already?

Something like @nkanazawa1989's suggestion would also work. I don't know if you want to specify all of a fit's parameters, but you at least want to specify "this analysis returns a frequency value."

self._n_qubits = backend.configuration().num_qubits
self._n_uchannels = backend.configuration().n_uchannels
self._config = backend.configuration()
self._params = {'qubit_freq': {}}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does feel like some structure is lost going with just (channel, name) rather than (channel, schedule/gate name, parameter name). The result of this is that the parameter names end up getting both the gate and the name stuck together (like amp_xp).

I thought the main reason that globally unique parameter names were required was that Schedule.assign_parameters replaces parameters in a schedule with their values, so the schedule must be deep copied before calling assign_parameters and that would create new Parameter instances with new UUID's. However, looking through the qiskit-terra code, I see that Parameter bypasses __copy__ and __deepcopy__, so the UUID's are actually preserved: https://github.com/Qiskit/qiskit-terra/blob/bdc73936d626d14057e0c95e7daaa25b7490020f/qiskit/circuit/parameter.py#L69-L73 So maybe parameter UUID's could be used?

Also, I see that Schedule.assign_parameters actually creates a new pulse with substituted parameters replaced with their values: https://github.com/Qiskit/qiskit-terra/blob/bdc73936d626d14057e0c95e7daaa25b7490020f/qiskit/pulse/parameter_manager.py#L212-L217 I note this because I had thought it might just add a value into the Parameter object that would affect other schedules using that Parameter but it does not.

One benefit of using parameter UUID's is that parameters could be linked across schedules if a table of UUID: (channel, name) or UUID: (channel, schedule name, parameter name) were kept. In the current implementation, parameter substitution is based on channel plus name, so you can't use the same parameter in schedules on two different channels. If the UUID's could be used, CalibrationsDefinition could add to a table of UUID: [(channel, schedule, parameter), ...] each time a schedule is added and then when generating circuits it could find which (channel, schedule, parameter) tuple has a calibrated value in CalibrationsDefinition's table of calibrated values and assign that value to uses of the Parameter with that UUID. One potential problem: how to handle the ambiguous case where there are calibrated values in CalibrationsDefinition for two different (channel, schedule name, parameter name) tuples that have the same Parameter instance?

I have been trying to think of what the trade offs are with using globally unique names per channel versus scoping the names within a schedule name. Here is what I thought of:

  • Since parameters will mostly be specific to a schedule, scoping names to a schedule enforces more consistent naming: (channel=0, schedule=xp, parameter=amp) vs. possible confusion of amp_xp vs. xp_amp.
  • Scoping to a schedule allows one to query the parameter database for all parameters associated with a specific schedule.
  • I thought there might be some benefit to using generic parameter names (like amp and angle) to let the user define generic schedules to be reused for different gates but in practice schedules get built by code and that code could be put in a loop or a function to generate copies of the schedule with different parameters, so the parameter names don't matter.
  • What about parameters that are not associated with a specific schedule like qubit_freq? Perhaps there could be some default all label for parameters not associated with a specific schedule. Otherwise that case is more straightforward for the global name case.

Comment on lines +55 to +59
self.cals.add_parameter_value('σ_xp', ParameterValue(40), ch_type=DriveChannel)
self.cals.add_parameter_value('amp_xp', ParameterValue(0.2), ch_type=DriveChannel)
self.cals.add_parameter_value('amp_x90p', ParameterValue(0.1), ch_type=DriveChannel)
self.cals.add_parameter_value('amp_y90p', ParameterValue(0.1j), ch_type=DriveChannel)
self.cals.add_parameter_value('β_xp', ParameterValue(0.0), ch_type=DriveChannel)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at this makes me wonder if add_parameter_value() could also accept numeric values and cast them ParameterValue().

Also, perhaps there could be a function that takes a dict like {'drive': {0: {name: val, ...}, 1: {...}}, 'measure': {0: ...}, 'control': {'0.1': {name: val, ...}}} for quickly populating initial parameters. Though maybe to_db/from_db for local files will be better for that.

for qubit, freq in enumerate(backend.defaults().qubit_freq_est):
timestamp = backend.properties().qubit_property(qubit)['frequency'][1]
val = ParameterValue(freq, timestamp)
self.add_parameter_value('qubit_freq', val, DriveChannel(qubit))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the qubit_freq parameter get used in some way within this PR? When in the code is it used to set the frequency?


return circuits

def update_calibrations(self, experiment_data: ExperimentData, index: int = -1):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So does the user have to call this separately after calling run()? Partly I am wondering how BaseCalibrationExperiment combines with ParallelExperiment to allow running a calibration on multiple qubits at the same time.

@eggerdj eggerdj mentioned this pull request Apr 14, 2021
coruscating pushed a commit that referenced this pull request Apr 23, 2021
* * Carved out data processor from PR #20

Co-authored-by: Naoki Kanazawa <nkanazawa1989@gmail.com>

* * Added node_output property.

* * Ran Black.
* Fixed unit tests.

* * Added a better methodology for checking the input requirements.

* * Lint fix.

* * Added population shots fix and corresponding tests.

* * Unified ToReal and ToImag.

* * Reformatted the DataProcessor to a list of nodes rather than pointers.
* Removed the node_type and root node.
* Amended tests accordingly.

* * Added history functionality to the data processor.

* * Made history of data processor a property.
* Adapted unit tests accordingly.

* * Fixed docstring.

* * Added _process to the IQPart data actions.

* * Changed node_output to a class variable.

* * Added the option to initialize the DataProcessor with given DataActions.

* * Removed Kernel and Discriminator. They will be for a future PR.

* * Added docstring from Will.

Co-authored-by: Will Shanks <wshaos@posteo.net>

* * Moved docstring.

* Update qiskit_experiments/data_processing/base.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* Update qiskit_experiments/data_processing/base.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* * Aligned code to _process.

* * Made data processor callable.

* * Renamed base.py to data_action.py.

* * Made nodes callable.

* * Removed history property, added call_with_history.

* * Renamed Population to Probability.

* * Metadata in processed_data.

* * Refactored _process(Dict[str, Any]) -> Dict[str, Any] to _process(Any) -> Any.

* * Added option to specifiy which nodes to include in the history.

* Update qiskit_experiments/data_processing/nodes.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* * Removed __init__ from DataAction.

* * Added the option to turn of validation.

* Update qiskit_experiments/data_processing/data_processor.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* * Simplified validation of IQ data.

* Update qiskit_experiments/data_processing/nodes.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* Update qiskit_experiments/data_processing/nodes.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* * Removed unnecessary wrapping of _process.

* * Polished docstrings and ran black.

* Update qiskit_experiments/data_processing/data_action.py

Co-authored-by: Will Shanks <wshaos@posteo.net>

* * Removed unnecessary code in DataProcessingError.

* * Rewrote doc string.

* * IQ data is now of type float and not complex.

* * Fixed validate issue.

* * Added error message to __call__ and call_with_history.

* * Improved docstring.

* * Impoved class docstring.

* * Changed how DataProcessor._nodes are initialized in __init__.

* * Changed behavior of empty data processor.

* * Refactored call and call_with_history to use the call_internal function.

* * Fixed, lint, black, and docstrings.

* Update qiskit_experiments/data_processing/data_action.py

* * Added type hint to call_with_history

* Update qiskit_experiments/data_processing/data_processor.py

Co-authored-by: Naoki Kanazawa <nkanazawa1989@gmail.com>
Co-authored-by: Will Shanks <wshaos@posteo.net>
Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
@eggerdj
Copy link
Contributor Author

eggerdj commented Jun 3, 2021

Replaced by PR #26

@eggerdj eggerdj closed this Jun 3, 2021
@eggerdj eggerdj deleted the calibration_module branch July 16, 2021 13:49
paco-ri pushed a commit to paco-ri/qiskit-experiments that referenced this pull request Jul 11, 2022
* * Carved out data processor from PR qiskit-community#20

Co-authored-by: Naoki Kanazawa <nkanazawa1989@gmail.com>

* * Added node_output property.

* * Ran Black.
* Fixed unit tests.

* * Added a better methodology for checking the input requirements.

* * Lint fix.

* * Added population shots fix and corresponding tests.

* * Unified ToReal and ToImag.

* * Reformatted the DataProcessor to a list of nodes rather than pointers.
* Removed the node_type and root node.
* Amended tests accordingly.

* * Added history functionality to the data processor.

* * Made history of data processor a property.
* Adapted unit tests accordingly.

* * Fixed docstring.

* * Added _process to the IQPart data actions.

* * Changed node_output to a class variable.

* * Added the option to initialize the DataProcessor with given DataActions.

* * Removed Kernel and Discriminator. They will be for a future PR.

* * Added docstring from Will.

Co-authored-by: Will Shanks <wshaos@posteo.net>

* * Moved docstring.

* Update qiskit_experiments/data_processing/base.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* Update qiskit_experiments/data_processing/base.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* * Aligned code to _process.

* * Made data processor callable.

* * Renamed base.py to data_action.py.

* * Made nodes callable.

* * Removed history property, added call_with_history.

* * Renamed Population to Probability.

* * Metadata in processed_data.

* * Refactored _process(Dict[str, Any]) -> Dict[str, Any] to _process(Any) -> Any.

* * Added option to specifiy which nodes to include in the history.

* Update qiskit_experiments/data_processing/nodes.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* * Removed __init__ from DataAction.

* * Added the option to turn of validation.

* Update qiskit_experiments/data_processing/data_processor.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* * Simplified validation of IQ data.

* Update qiskit_experiments/data_processing/nodes.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* Update qiskit_experiments/data_processing/nodes.py

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>

* * Removed unnecessary wrapping of _process.

* * Polished docstrings and ran black.

* Update qiskit_experiments/data_processing/data_action.py

Co-authored-by: Will Shanks <wshaos@posteo.net>

* * Removed unnecessary code in DataProcessingError.

* * Rewrote doc string.

* * IQ data is now of type float and not complex.

* * Fixed validate issue.

* * Added error message to __call__ and call_with_history.

* * Improved docstring.

* * Impoved class docstring.

* * Changed how DataProcessor._nodes are initialized in __init__.

* * Changed behavior of empty data processor.

* * Refactored call and call_with_history to use the call_internal function.

* * Fixed, lint, black, and docstrings.

* Update qiskit_experiments/data_processing/data_action.py

* * Added type hint to call_with_history

* Update qiskit_experiments/data_processing/data_processor.py

Co-authored-by: Naoki Kanazawa <nkanazawa1989@gmail.com>
Co-authored-by: Will Shanks <wshaos@posteo.net>
Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants