Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
253 commits
Select commit Hold shift + click to select a range
aec44f6
Fixed unit test with Brian Donovan's help
matthewware Sep 27, 2018
a9bf3ba
Fix python version error in travis
matthewware Sep 27, 2018
a5ec75d
added some missing files
matthewware Sep 28, 2018
b42c1ae
Remove unncessary .DS_Store file
matthewware Jan 6, 2019
a6d0bdc
Change np.isclose -> np.all(np.less()) in APS2 pattern generator
gribeill Jan 10, 2019
4765201
Simple script to look at cProfile info.
gribeill Jan 10, 2019
fd7b5f8
Update README.md
matthewware Jan 4, 2019
dfc91e6
Update setup.py
matthewware Jan 4, 2019
52251f6
Consistent order (qc,qt) for CR
Jul 30, 2018
20391fb
Fix test sequences
Jan 4, 2019
8fc971e
Allow for slave trigger for APS1
Nov 7, 2018
09ff7ee
Added a __main__ reference to get simple python invocation unittest w…
Nov 7, 2018
8505202
Added test_QGL comments regarding Git LFS data file usage
Nov 9, 2018
a3654d2
Added README.md tail comment regarding Git LFS usage for some unittes…
Nov 9, 2018
86f36b9
Defined ReadMeDocs.txt to briefly describe the MkDocs document librar…
Nov 14, 2018
75b4ef9
Defined renderDocs.sh and runUnitTests.sh shell scripts to automate
Nov 30, 2018
00ecab3
Corrected runUnitTests.sh description header.
Nov 30, 2018
a2153f6
Fixed a typo in runUnitTests.sh (removed the .py reference in second …
Dec 4, 2018
c9da2dc
fixed a mkdocs dep warning
matthewware Jan 6, 2019
8d9853a
Change np.isclose -> np.all(np.less()) in APS2 pattern generator
gribeill Jan 10, 2019
5821b5e
Simple script to look at cProfile info.
gribeill Jan 10, 2019
3c76064
Add IR compile function
matthewware Jan 10, 2019
7f7e434
Add memory info
matthewware Jan 10, 2019
4e4556e
Merge branch 'fix/compile-performance' of github.com:bbn-q/qgl into f…
matthewware Jan 10, 2019
087bf2f
Memoize waveform objects to save on memory.
gribeill Jan 11, 2019
3f346df
Remove debug stuff.
gribeill Jan 11, 2019
9fc12f2
More typos.
gribeill Jan 11, 2019
2d26637
Use __slots__ for Waveform class to save on memory...
gribeill Jan 14, 2019
b39125c
Attempt at manual garbage collection.
matthewware Jan 24, 2019
1cac160
Remove memory debug info
gribeill Jan 28, 2019
f32df2c
Skip GSTTools unit tests if running in Travis.
gribeill Jan 28, 2019
cbeb82a
Fix deprecation warning for empty array check
gribeill Jan 28, 2019
575239e
Get rid of 3.5 CI testing.
gribeill Jan 28, 2019
6af2cf2
Autogen stream selectors
grahamrow May 23, 2018
c3055e4
Ditch atom, move to Pony.orm for all channel library objects.
grahamrow May 31, 2018
b9f3c0c
Adding python configuration file, supporting infrastructure
grahamrow Jun 1, 2018
2e63ef9
Can now load/save to a database with labels and datestamps
grahamrow Jun 5, 2018
4c83141
Fix factories to pull most recent qubits, etc.
grahamrow Jun 6, 2018
10c7944
Adding save/load functionality
grahamrow Jun 12, 2018
7f02f9f
ChannelLibrary can now close and reopen db connections on instantiation
grahamrow Jun 12, 2018
72d5c0b
Fixed copying and relinking
grahamrow Jun 12, 2018
02f777a
Deletion working more reliably
grahamrow Jun 12, 2018
a350671
Fix initial loading
grahamrow Jun 12, 2018
5ccb57e
Fixed deletion of additional temporary channel dbs
grahamrow Jun 12, 2018
45e37a9
Clean up loading and purging temp channel dbs
grahamrow Jun 13, 2018
b83b0b1
Strip out autoupdate for now
grahamrow Jun 14, 2018
6df5c9e
Starting to add instrument entities to db
grahamrow Jun 15, 2018
e1c99ac
Tweaks to clearing, convenience functions, etc.
grahamrow Jun 20, 2018
0d370f1
Add quick qubit selection function to physical channels
grahamrow Jun 25, 2018
e65a5d3
Explicitly use "working" channel db rather than hiding "__temp__"
grahamrow Jun 25, 2018
d5afc71
Added bbndb submodule
grahamrow Jun 26, 2018
1dee44c
Add requirements file and update setup.py
grahamrow Jun 26, 2018
95a4cc0
Shifting to bbndb for channel entities
grahamrow Jul 13, 2018
a0b213d
Added new_Alazar method
grahamrow Jul 18, 2018
6797bb4
Setting any channel attribute now invalidates the memoize cache
grahamrow Jul 18, 2018
492de56
Remove overly verbose code from aed6222
grahamrow Jul 18, 2018
dfef1cf
Created wrapper to convert func args that are entities into unique ID…
grahamrow Jul 20, 2018
ccc4a1d
Convert channel library to properly using db_sessions for non-interac…
grahamrow Jul 20, 2018
a508cfd
Frequency now required for sources
grahamrow Sep 19, 2018
dd709e2
Add transceiver object and rename AWG->transmitter, dig->receiver
grahamrow Oct 3, 2018
99d30b8
Preliminary functionality moving to sqlalchemy from pony (sigh of rel…
grahamrow Oct 9, 2018
352b23c
Fix queries for channel db
grahamrow Oct 10, 2018
64cca25
Fix Factories in ChannelLibraries
grahamrow Oct 10, 2018
c3279f6
Clearing now functioning properly, working on copy, load
grahamrow Oct 11, 2018
f79129f
Move to cleaner deep copy and fix up saving channel dbs
grahamrow Oct 12, 2018
7feae77
Saving and loading appear to be working again
grahamrow Oct 12, 2018
4fc5cfd
Compatibility of compiler with new SQLAlchemy
grahamrow Oct 12, 2018
4949158
Fix saving and loading and interactions with QubitFactory etc.
grahamrow Nov 15, 2018
1a5a8f0
Clear pulse cache before recompiling, otherwise DB updates fall on de…
grahamrow Nov 16, 2018
4418a7b
Add checking for duplicates and dirty session
grahamrow Nov 16, 2018
d81b5f8
Update channel lib automatically when loading factories
grahamrow Nov 16, 2018
7fa03ea
Pretty printing filter channel library versions
grahamrow Nov 16, 2018
e76e1a5
Added ability to delete channel library versions
grahamrow Nov 19, 2018
be6e538
Fix timing for connectivity building
grahamrow Dec 7, 2018
61c4cf3
Now properly adding all new objects to the session.
gribeill Dec 11, 2018
5fd7a90
Replace historical channel naming convention ch12-> ch1, ch12m2->m2 etc.
grahamrow Dec 19, 2018
72582af
X6 and TDM compatibility. -- GER, GJR
matthewware Jan 25, 2019
93654ea
Change APS2 rack setup
matthewware Jan 25, 2019
fb89dca
Properly set edges.
matthewware Jan 25, 2019
88e9bdf
Remove merge conflict detritus
gribeill Jan 28, 2019
be6e8a6
Fix up travis yml from merge
grahamrow Jan 29, 2019
3e14ce8
New spec an
gribeill Feb 5, 2019
1bfe235
Pass frequency keyword to enable baked in frequency sweeps
gribeill Feb 8, 2019
a7c7ef3
Replace H5 with simple binary format in aps2
grahamrow Feb 7, 2019
9e9a562
Add a nice PyQt5 GUI for showing disassmbled APS2 instructions
grahamrow Feb 8, 2019
492a21c
No more bokeh
gribeill Feb 8, 2019
a2715c6
Replace bokeh with bqplot
grahamrow Feb 11, 2019
9e492b4
Merge pull request #190 from BBN-Q/feature/noh5
grahamrow Feb 11, 2019
12340d4
Start tracking .aps2 files
grahamrow Feb 11, 2019
c37060d
Deleting APS2 h5 files
grahamrow Feb 11, 2019
16dd0c1
Update test_QGL
grahamrow Feb 12, 2019
ccdd432
Now passing test_sequence for APS2, excepting GST tests
grahamrow Feb 13, 2019
644555f
Fixed APS and APS2 pattern tests
grahamrow Feb 13, 2019
313947a
Fixed test_compiler
grahamrow Feb 13, 2019
f36a51f
Destroy YAML
grahamrow Feb 13, 2019
93df6c5
Fix test_Scheduler
grahamrow Feb 13, 2019
2b762fb
Fix test_controlflow
grahamrow Feb 13, 2019
36d478f
:tada: ALL UNIT TESTS PASSING :tada:
grahamrow Feb 13, 2019
e2233ef
Add bbndb to travis.yml
grahamrow Feb 13, 2019
07ee1d2
More travis tweaks
grahamrow Feb 13, 2019
b2de57d
More travis tweaks, again
grahamrow Feb 13, 2019
2d3752e
More travis tweaks, again, again
grahamrow Feb 13, 2019
25b694b
Added h5->aps binary conversion utility. Working on APS1 binary format
grahamrow Feb 13, 2019
61ce7c2
Migrating all test data to binary format
grahamrow Feb 14, 2019
8e5de51
APS1 binary format complete and passing unit tests
grahamrow Feb 14, 2019
9db5fa0
Warn if existing object
Feb 14, 2019
6af6ed2
Merge branch 'sqlalchemy' of github.com:BBN-Q/QGL into sqlalchemy
Feb 14, 2019
c54941d
Unnecessary warn import
Feb 14, 2019
0f92d03
Initial commit of changes for hardware randomization
gribeill Feb 14, 2019
60bdf94
new_APS convenience function
grahamrow Feb 15, 2019
0b807e4
Delete future
grahamrow Feb 15, 2019
63b23f3
Use temporary directory for test_sequence data is AWG dir is not spec…
grahamrow Feb 15, 2019
ea178ec
WIP
gribeill Feb 18, 2019
0dae294
Fix APS1 marker name
grahamrow Feb 19, 2019
afbe77c
Added compatibility for using APS1
Feb 20, 2019
3a8de16
Better fix for APS1 compatibility
Feb 20, 2019
dbc8fab
Add DC source
Feb 21, 2019
df3221b
Merge branch 'sqlalchemy' into feature/DCsource
Feb 21, 2019
3338aad
WIP
gribeill Feb 22, 2019
99d9f3d
More WIP...
gribeill Feb 22, 2019
5243c53
Add string representation for custom instructions
gribeill Feb 23, 2019
8b790b4
Set write flag to CALL to indicate load from VRAM
gribeill Feb 23, 2019
9685716
Update APS2 custom instructions for randomizer
gribeill Feb 23, 2019
1660fb3
Tools for random clifford sequences.
gribeill Feb 23, 2019
f81fb8a
Merge pull request #192 from BBN-Q/feature/DCsource
Feb 25, 2019
107e25a
Even more WIP
gribeill Feb 25, 2019
c36c771
Remove debug.
gribeill Feb 25, 2019
b859abe
Make sure Custom instructions not dropped by pattern generator!
gribeill Feb 26, 2019
0d35655
Add DCsources and spec.analyzers to db
Feb 26, 2019
3285bd5
Merge pull request #191 from BBN-Q/feature/APS1compatibility
Feb 26, 2019
7380af3
bqplot fixes
Feb 26, 2019
923deb3
Add color for custom instructions
gribeill Feb 26, 2019
160aeb1
Don't drop WRITEADDR instructions!
gribeill Feb 26, 2019
3d736f6
Add sequence debugger.
gribeill Feb 26, 2019
7e3d2fb
Merge pull request #194 from BBN-Q/feature/DCsource
Feb 26, 2019
b7a15f7
Properly set indirect mode on CALL
gribeill Feb 26, 2019
5d641c0
Fix block labels on Calls.
gribeill Feb 26, 2019
f02bdb2
Make more pretty
gribeill Feb 26, 2019
b9a2ff0
Bold font
gribeill Feb 26, 2019
bae3736
Get rid of accidental egg-info files
grahamrow Feb 26, 2019
15f0615
Added goto buttons and waveform plotters to APS2 disassembler
grahamrow Feb 26, 2019
4d2acd6
Nice looking buttons for WFM and GOTO in disassembler
grahamrow Feb 27, 2019
b7e611e
Move disassembler to utils directory
grahamrow Feb 27, 2019
b34d547
Add new_marker function
Feb 27, 2019
198c1c5
set_measure and set_control can now be run multiple times
grahamrow Feb 27, 2019
9ee829f
Add jump table indicator to block label.
gribeill Feb 27, 2019
b7932f9
Only set up clifford generator once per sequence file.
gribeill Feb 27, 2019
146ed60
Correct __str__ for indicrect CALL
gribeill Feb 27, 2019
221609e
Correct implementation of APS2_SET_SEED
gribeill Feb 27, 2019
86ab8ba
Keep modulation commands explicitly in subroutines to prevent eliding…
gribeill Feb 27, 2019
ed8d087
Proper prefetching for jump-table based subroutines
gribeill Feb 27, 2019
ab5a0da
Merge branch 'feature/hardware-randomization' of github.com:bbn-q/qgl…
gribeill Feb 27, 2019
0cbcd57
Fix typo.
gribeill Feb 27, 2019
1160bad
More flexible about set_measure and set_control, which can now be rer…
grahamrow Feb 27, 2019
a0d3746
Remove debug watcher from QGL (now in libaps2)
gribeill Feb 27, 2019
f45db34
Remove junk
gribeill Feb 27, 2019
bc0af46
AWGDir now defaults to temp directory if not defined in config
grahamrow Feb 27, 2019
2546c3d
Fix alignment for equal-length pulses
Feb 1, 2019
681407d
Set if_freq for demod stream
Mar 1, 2019
3749e01
Rever last commit
Mar 1, 2019
8f09532
Set default kernel
Mar 1, 2019
1fd852b
Rolled back sqlalchemy version to 2.1.15 (vice 2.1.17) to use version…
Mar 4, 2019
5cd1fd0
Add new_attenuator method
gribeill Mar 8, 2019
33cbf2e
Ditch comment and upgrade requirements.txt for 1.2.15
Mar 12, 2019
ca19e84
Revert to old stream labels
Mar 15, 2019
3225190
Merge branch 'master' into feature/hardware-randomization
matthewware Mar 18, 2019
5477c87
Update dictionary for existing objects
Mar 18, 2019
956272d
Fix Rabi with no cals
Mar 18, 2019
abad0b1
Merge pull request #198 from BBN-Q/fix/stream-labels
Mar 21, 2019
8f7ea54
Add stark shift related utility sequences.
gribeill Mar 27, 2019
6073c5a
Get everything working... various bug fixes and add stark shift funct…
gribeill Mar 27, 2019
2ead5cc
Merge pull request #199 from BBN-Q/feature/stark-shift-utils
gribeill Mar 27, 2019
b1716d5
Make sure axis descriptors are lists
gribeill Mar 27, 2019
5759750
Fixes for adding stream selectors back in
grahamrow Apr 2, 2019
5e5c634
Merge pull request #202 from BBN-Q/feature/return-of-stream-selectors
grahamrow Apr 10, 2019
37a3d12
Now use separate sessions for channel lib and pipeline
grahamrow Apr 18, 2019
e547b5e
move away from stream_sel_map
sfallek1 Apr 8, 2019
b263a05
fix aps2 rack typo
sfallek1 Apr 24, 2019
b3e548e
Merge branch 'sqlalchemy' into feature/hardware-randomization
gribeill Apr 24, 2019
a539652
Update to latest sqlalchemy syntax
gribeill Apr 24, 2019
52a1bfe
Add python egg file to gitignore
gribeill Apr 26, 2019
be39b86
Update Inverse Reset instruction sequence.
gribeill Apr 26, 2019
a03994b
Output label names and address for debug.
gribeill Apr 26, 2019
cc98419
mapping for APS2Pattern w/ APS2Rack
gribeill Apr 30, 2019
ea13db8
bogus readme commit
gribeill Apr 30, 2019
2ad6f60
Merge pull request #197 from BBN-Q/sqlalchemy_v1.2.15
grahamrow May 1, 2019
5368a5a
Merge pull request #207 from BBN-Q/feature/SSFixes
grahamrow May 1, 2019
6f2a8d2
Added bqplot graph plot of channel connectivity using show() method
grahamrow May 2, 2019
1653ebb
Add additional info to connectivity plot
grahamrow May 2, 2019
6c14241
Add show_frequency_plan method
grahamrow May 2, 2019
175f397
Fix channel lib setup for unit tests
grahamrow May 23, 2019
4769986
Merge pull request #209 from BBN-Q/feature/plot-connectivity
grahamrow May 23, 2019
9a3f221
addr and mask in Invalidate
Apr 10, 2019
9a11c80
Fix mv syntax
Apr 12, 2019
cd73f7b
Set mask correctly
Apr 16, 2019
d46ccdb
Merge pull request #210 from BBN-Q/fix/TDM_instr
May 28, 2019
eaaa01e
Add back WFM plotting and GOTO buttons in pattern plotter
grahamrow Jun 3, 2019
387e26c
Added support for 4 NCOs
Nov 28, 2018
b8bba04
Reset 4 NCOs
Nov 28, 2018
03dee01
if the "kind" is unknown, raise an exception
dellard Jan 17, 2019
5632b17
clean up exceptions raised by qwait
dellard Jan 18, 2019
f4d415f
tests for new qwait sanity checks
dellard Jan 18, 2019
beeeb66
Initial commit of changes for hardware randomization
gribeill Feb 14, 2019
192789d
WIP
gribeill Feb 18, 2019
a24b0a1
WIP
gribeill Feb 22, 2019
180ecb1
More WIP...
gribeill Feb 22, 2019
f6aa67d
Add string representation for custom instructions
gribeill Feb 23, 2019
7409fe5
Set write flag to CALL to indicate load from VRAM
gribeill Feb 23, 2019
b6cc824
Update APS2 custom instructions for randomizer
gribeill Feb 23, 2019
fa7aff8
Tools for random clifford sequences.
gribeill Feb 23, 2019
fca2e81
Even more WIP
gribeill Feb 25, 2019
5fe0c19
Remove debug.
gribeill Feb 25, 2019
edb89fc
Make sure Custom instructions not dropped by pattern generator!
gribeill Feb 26, 2019
41e488e
Add color for custom instructions
gribeill Feb 26, 2019
6f6530a
Don't drop WRITEADDR instructions!
gribeill Feb 26, 2019
418e1b4
Add sequence debugger.
gribeill Feb 26, 2019
3c8608d
Properly set indirect mode on CALL
gribeill Feb 26, 2019
40fc869
Fix block labels on Calls.
gribeill Feb 26, 2019
20a83a7
Make more pretty
gribeill Feb 26, 2019
dc7d2be
Bold font
gribeill Feb 26, 2019
8ea186d
Added goto buttons and waveform plotters to APS2 disassembler
grahamrow Feb 26, 2019
c55f7e7
Nice looking buttons for WFM and GOTO in disassembler
grahamrow Feb 27, 2019
19abc55
Move disassembler to utils directory
grahamrow Feb 27, 2019
9ba81a6
Add jump table indicator to block label.
gribeill Feb 27, 2019
79fffaa
Only set up clifford generator once per sequence file.
gribeill Feb 27, 2019
0545e72
Correct __str__ for indicrect CALL
gribeill Feb 27, 2019
0b588e9
Correct implementation of APS2_SET_SEED
gribeill Feb 27, 2019
5382f14
Keep modulation commands explicitly in subroutines to prevent eliding…
gribeill Feb 27, 2019
3a22369
Proper prefetching for jump-table based subroutines
gribeill Feb 27, 2019
d45839b
Fix typo.
gribeill Feb 27, 2019
bd19ab3
Remove debug watcher from QGL (now in libaps2)
gribeill Feb 27, 2019
d34bb11
Remove junk
gribeill Feb 27, 2019
8d75d89
Update to latest sqlalchemy syntax
gribeill Apr 24, 2019
dba195f
Add python egg file to gitignore
gribeill Apr 26, 2019
dcde87b
Update Inverse Reset instruction sequence.
gribeill Apr 26, 2019
8c6630b
Output label names and address for debug.
gribeill Apr 26, 2019
1651cf2
Merge branch 'feature/hardware-randomization' of github.com:bbn-q/qgl…
matthewware Jul 19, 2019
e7b6aac
Add RandomClifford to set of random pulses. -GR
gribeill Jul 19, 2019
e445592
Revert 4-NCO changes to APS2Pattern.py
gribeill Jul 24, 2019
86566f4
Remove RandomClifford name collison
gribeill Jul 24, 2019
2589b44
typo in APS2pattern.py -MW
matthewware Jul 25, 2019
8fd7909
Let's be honest about what we're doing -MW
matthewware Jul 25, 2019
4a53e7b
Load to comparison register after custom instruction to block sequencer.
gribeill Jul 29, 2019
fa544b8
Add explicit random inverse pulse.
gribeill Jul 29, 2019
7513451
Add TestClifford pulse for testing randomizer output.
gribeill Jul 29, 2019
ab5b379
Restore sequence file viewer code that got nuked at some point
gribeill Jul 29, 2019
1cdf53b
Add ability to reset inverse tracker to other than identity.
gribeill Jul 29, 2019
602dd1f
Update random clifford sequence builder
gribeill Jul 29, 2019
eacf5be
Modify GST code for newest pygsti stuff.
gribeill Jul 25, 2019
242118d
Support Random diatomic pulses
gribeill Aug 29, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
*.h5 filter=lfs diff=lfs merge=lfs -text
*.aps2 filter=lfs diff=lfs merge=lfs -text
*.aps1 filter=lfs diff=lfs merge=lfs -text
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@
*.h5
*.py~
*.py#
*.egg-info
QGL.egg-info/
19 changes: 12 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@

language: python
python:
- 3.5
- 3.6
env:
- CONDA_TYPE=miniconda CONDA_VERS=https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
- CONDA_TYPE=miniconda CONDA_VERS=https://repo.continuum.io/miniconda/Miniconda3-4.5.11-Linux-x86_64.sh

before_install:
# install git lfs and fetch test data
Expand All @@ -22,22 +25,24 @@ install:

# We do this conditionally because it saves us some downloading if the
# version is the same.
- wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
- echo "Using $CONDA_TYPE"
- wget $CONDA_VERS -O miniconda.sh
- bash miniconda.sh -h | sed '4q;d'
- bash miniconda.sh -b -p $HOME/miniconda
- export PATH="$HOME/miniconda/bin:$PATH"
- export BBN_MEAS_FILE="$PWD/tests/test_measure.yml"
- echo "Measure file at $BBN_MEAS_FILE"
- hash -r
- conda config --set always_yes yes --set changeps1 no
- conda update -q conda
# Useful for debugging any issues with conda
- conda info -a

# Create conda environment with dependencies
- conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION numpy bokeh h5py jupyter scipy networkx future
- conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION numpy sqlalchemy jupyter scipy networkx
- source activate test-environment
- conda install -c ecpy atom;
- pip install watchdog coveralls
- pip install coveralls
- pip install bqplot
- pip install git+https://github.com/BBN-Q/bbndb.git
- if [[ $TRAVIS_PYTHON_VERSION == 3.6 ]]; then pip install pygsti; fi

script:
- coverage run -m unittest discover
Expand Down
10 changes: 10 additions & 0 deletions QGL.egg-info/PKG-INFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Metadata-Version: 1.0
Name: QGL
Version: 2.1
Summary: UNKNOWN
Home-page: https://github.com/BBN-Q/QGL
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Description: UNKNOWN
Platform: UNKNOWN
41 changes: 41 additions & 0 deletions QGL.egg-info/SOURCES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
README.md
QGL/BlockLabel.py
QGL/ChannelLibraries.py
QGL/Channels.py
QGL/Cliffords.py
QGL/Compiler.py
QGL/ControlFlow.py
QGL/GSTTools.py
QGL/PatternUtils.py
QGL/Plotting.py
QGL/PulsePrimitives.py
QGL/PulseSequencePlotter.py
QGL/PulseSequencer.py
QGL/PulseShapes.py
QGL/Scheduler.py
QGL/TdmInstructions.py
QGL/Tomography.py
QGL/__init__.py
QGL/config.py
QGL/config_location.py
QGL/mm.py
QGL.egg-info/PKG-INFO
QGL.egg-info/SOURCES.txt
QGL.egg-info/dependency_links.txt
QGL.egg-info/requires.txt
QGL.egg-info/top_level.txt
QGL/BasicSequences/AllXY.py
QGL/BasicSequences/BlankingSweeps.py
QGL/BasicSequences/CR.py
QGL/BasicSequences/Decoupling.py
QGL/BasicSequences/Feedback.py
QGL/BasicSequences/FlipFlop.py
QGL/BasicSequences/RB.py
QGL/BasicSequences/Rabi.py
QGL/BasicSequences/SPAM.py
QGL/BasicSequences/T1T2.py
QGL/BasicSequences/__init__.py
QGL/BasicSequences/helpers.py
QGL/drivers/APS2Pattern.py
QGL/drivers/APSPattern.py
QGL/drivers/__init__.py
1 change: 1 addition & 0 deletions QGL.egg-info/dependency_links.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

6 changes: 6 additions & 0 deletions QGL.egg-info/requires.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
bbndb>=0.1
numpy>=1.11.1
scipy>=0.17.1
networkx>=1.11
bqplot>=0.11.5
sqlalchemy>=1.2.17
1 change: 1 addition & 0 deletions QGL.egg-info/top_level.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
QGL
86 changes: 86 additions & 0 deletions QGL/APS2CustomInstructions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
'''
Copyright 2019 Raytheon BBN Technologies

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
'''

# Instructions for the the prototype APS2-TDM hardware.

from .TdmInstructions import CustomInstruction, WriteAddr, Invalidate, LoadCmpVram
from .ControlFlow import LoadCmp, Call

##custom APS OP_CODES
#APS_CLIFFORD_SET_SEED: Set 32 bit seed for random number generator
#APS_CLIFFORD_SET_OFFSET: Stores jump table starting offset
#APS_CLIFFORD_SET_SPACING: Stores jump table spacing (integer to shift left),
# including interal address representation
#APS_CLIFFORD_INVERSE_RESET: Reset inverse tracker
#APS_CLIFFORD_RAND: Choose randomly from set of 24 waveforms,
# returns starting address of jump table entry from RAM
#APS_CLIFFORD_INVERSE: Store waveform address of inverse waveform to be jumped to

APS2_CUSTOM = {"APS_RAND": 0,
"APS_CLIFFORD_RAND": 2,
"APS_CLIFFORD_INVERSE": 6,
"APS_CLIFFORD_INVERSE_RESET": 7,
"APS_CLIFFORD_SET_SEED": 3,
"APS_CLIFFORD_SET_OFFSET": 4,
"APS_CLIFFORD_SET_SPACING": 5}

APS2_CUSTOM_DECODE = {v: k for k, v in APS2_CUSTOM.items()}

##Note that the expected call pattern for the randomizer is:

# APS_CLIFFORD_RAND / APS_CLIFFORD_INVERSE
# LOADCMP
# CALL

def RandomCliffordSetOffset(addr, offset):
return [Invalidate(addr, 0, tdm=False),
WriteAddr(addr, offset, tdm=False),
LoadCmpVram(addr, 0xFFFFFFFF, tdm=False), #
CustomInstruction("APS_CLIFFORD_SET_OFFSET", addr, 0xA),
LoadCmpVram(0xA, 0xFFFFFFFF, tdm=False)]

def RandomCliffordSetSpacing(addr, spacing):
return [Invalidate(addr, 0, tdm=False),
WriteAddr(addr, spacing, tdm=False),
LoadCmpVram(addr, 0xFFFFFFFF, tdm=False),
CustomInstruction("APS_CLIFFORD_SET_SPACING", addr, 0xA),
LoadCmpVram(0xA, 0xFFFFFFFF, tdm=False)]

def RandomClifford(target, addr):
return [Invalidate(addr, 0, tdm=False),
CustomInstruction("APS_CLIFFORD_RAND", 0x0, addr),
LoadCmpVram(addr, 0xFFFFFFFF, tdm=False),
Call(target, indirect=True)]

def RandomCliffordInverse(target, addr):
return [Invalidate(addr, 0, tdm=False),
CustomInstruction("APS_CLIFFORD_INVERSE", 0x0, addr),
LoadCmpVram(addr, 0xFFFFFFFF, tdm=False),
Call(target, indirect=True)]

def RandomCliffordInverseReset(val=0x0, addr=0xD): #for now don't use addr
return [Invalidate(addr, 0, tdm=False),
WriteAddr(addr, val, tdm=False),
LoadCmpVram(addr, 0xFFFFFFFF, tdm=False),
CustomInstruction("APS_CLIFFORD_INVERSE_RESET", addr, 0xA),
LoadCmpVram(0xA, 0xFFFFFFFF, tdm=False)]

def RandomCliffordSeed(seed):
return [Invalidate(0xB, 0, tdm=False),
WriteAddr(0xB, seed, tdm=False),
LoadCmpVram(0xB, 0xFFFFFFFF, tdm=False),
CustomInstruction("APS_CLIFFORD_SET_SEED", 0xB, 0xA),
LoadCmpVram(0xA, 0xFFFFFFFF, tdm=False)]
15 changes: 7 additions & 8 deletions QGL/BasicSequences/Feedback.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,8 @@ def BitFlip3(data_qs, ancilla_qs, theta=None, phi=None, nrounds=1, meas_delay=1e
raise Exception("Wrong number of qubits")
seqs = [
DecodeSetRounds(1,0,nrounds),
Invalidate(addr=10, mask=2*nrounds),
Invalidate(addr=11, mask=0x1)]
Invalidate(10, 2*nrounds),
Invalidate(11, 0x1)]

# encode single-qubit state into 3 qubits
if theta and phi:
Expand Down Expand Up @@ -153,7 +153,7 @@ def BitFlip3(data_qs, ancilla_qs, theta=None, phi=None, nrounds=1, meas_delay=1e
if docals:
seqs += create_cal_seqs(qubits,
calRepeats)
metafile = compile_to_hardware(seqs, 'BitFlip/BitFlip')
metafile = compile_to_hardware(seqs, 'BitFlip/BitFlip', tdm_seq=True)
return metafile

def MajorityVoteN(qubits, nrounds, prep=[], meas_delay=1e-6, docals=False, calRepeats=2):
Expand All @@ -172,9 +172,9 @@ def MajorityVoteN(qubits, nrounds, prep=[], meas_delay=1e-6, docals=False, calRe
metafile : metafile path
"""
nqubits = len(qubits)
seqs = [MajorityMask(nrounds*nqubits),
Invalidate(addr=10, mask=nrounds*nqubits),
Invalidate(addr=11, mask=1)]
seqs = [MajorityMask(1, 0, nrounds*nqubits),
Invalidate(10, nrounds*nqubits),
Invalidate(11, 1)]
if prep:
seqs += [reduce(operator.mul, [X(q) for n,q in enumerate(qubits) if prep[n]])]
for n in range(nrounds):
Expand All @@ -187,5 +187,4 @@ def MajorityVoteN(qubits, nrounds, prep=[], meas_delay=1e-6, docals=False, calRe
if docals:
seqs += create_cal_seqs(qubits,
calRepeats)
metafile = compile_to_hardware(seqs, 'MajorityVote/MajorityVote')
return metafile
metafile = compile_to_hardware(seqs, 'MajorityVote/MajorityVote', tdm_seq=True)
2 changes: 2 additions & 0 deletions QGL/BasicSequences/Rabi.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@ def RabiAmp_NQubits(qubits,

if docals:
seqs += create_cal_seqs(qubits, calRepeats, measChans=measChans)
else:
calRepeats = 0

axis_descriptor = [
{
Expand Down
Loading