-
Notifications
You must be signed in to change notification settings - Fork 66
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
Release v0.6.0 #372
Merged
Merged
Release v0.6.0 #372
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Change sphinx theme to furo * Change sphinx theme to book Poll results: 3 | books 2 | MagnificientGreen 1 | furo 1 | press 0 | ReadTheDocs Two other contributions steering towards `books`.
* Update runs and samples per run. * Update black
* A first gist of sequence sampler plain dataframe of samples extract samples in the nested dict form A note: basis that are unused by declared channels are arrays full of zeros, while it is simply not initilized in the dict in the simulation module. add test to compare with extraction from simulation module Add various docstrings type annotations sample per qubit, test passes add support for LocalNoises add seed to the amplitude_noise generator fix the doppler noise to use a normal distribution Write test for doppler noise. It fails. It fails probably because of the different seeds in the random generators ? refactor a bit Rename as module sampler Refactor by distinguishing the local and global extraction Remove unused import Refactor the noises to their own modules Add modulation, but no implementation Revert "Refactor the noises to their own modules" This reverts commit 37093330c57a9152604f239e79ec6940a213b432. Use strategies for _TimeSlot extraction Remove functions made useless by refactor to strategy pattern Add doctrings and make some functions private Extend test to local channels Remove dead code Add modulation Refactor a bit: docstrings, order of functions, etc. Fix _TimeSlot grouping by handling delays correctly Tidy the comments refactor the extraction strategies Docstring * Refactor sampler in independent module * Consistent support for noises, SLM and modulation of Global and Local Deprecate temporarily the amplitude_noise as it misses the point It urges for a correct implementation Refactor sample writing Allow local decay with on SLM Add support for noises on global channel Add TODO for global modulation Fix usage of noises.apply() Fix modulation and apply SLM on local channels as well Fix imports * Refactor the noises module Also fix imports for mypy compliance * Improve docstrings and small refactoring * Small typos in comments * Fix the decay of global channels to local ones * Fix the modulation feature * Refactor Adds a post_init check for same length of quantities arrays Add documentation, testing and refactoring Refactor the dict construction with modulation Simple comment to clarify the design of sampler.sample() Remove unnecessary value in enum _GroupType Add a diagram for _TimeSlot grouping Fix embedded NoiseModel by using copies Update docstrings with args Expose the sample() function from the __init__ Test the amplitude noise Remove unused commented import Add usage note on doppler noise Add a docstring for the amplitude noise Remove empty line Create a better test for doppler noise Small refactor Mark the doppler test as expected to fail Refactor the control flow of sampler.sample() Refactor the dict exporting Refactor Fix typo Add a docstring Refactor the TimeSlot grouping and strategy * Simplify the flow of samples.samples() Global and local channels are sampled identically. The export to a dict form like the simulation one handles the distinctions. It introduces an additional dict keeping track of the addressing of each channel: Global, Decayed, Local. Trim dead code, refactor, defensive coding Write global channel from QubitSamples Rename modulation function * Improve test and get total coverage Table based tests Add a modulation test I don't like it. It is testing the sampling for sure, but still I would like to test against a known output of the modulation. Remove unnecessary if branch functools.reduce got us covered already Extend to digital Fix mypy error because of weird scope of variables Test sequence in XY and fix a typo in the relevant code Test for corner cases and omit defensive coding with pragma no cover * Simplify the sampling by removing the Samples dataclass * Fix a docstring * Fix docstrings formatting and content * Remove unnecessary nonzero check in amplitude noise * Fix the noise seed default value: defaults to None * Improve docstrings of helper functions in noise module * Apply noises before the SLM masking * Rename misnamed variables * Change the scope of _key_func() and remove the _GroupType class * Fix dictionary construction with defaultdict * Fix misnamed keys in tests * Add a match to pytest.raises * Move the noises to the simulation module Import NoiseModel as noises.NoiseModel to avoid a weird circular import * Improve the simulation.noises docstring * Remove noisy helper functions * Write test case for _write_dict exception It removes the # pragma: no cover. * Reorder tests * Add a more fundamental test * Reword and add docstrings * Fix other misnamed keys in tests * Fix SLM masking: consider only the seq._mask_times Sequence._slm_mask_time is not a list of times, but a pair with a start and end time of the SLM masking. * Change for defaultdict in new_qdict * Add a note about performance for sampling of global channels For global channels, we hold the same data in N copies, N the number of qubits of the register. It scales poorly with the size of the register, but it remains manageable for current size of registers. If needed, we should patch this, at the expense of a more complex control flow in the sample() function at least. * Simply testing of sequence * Refactor the testing of sequence with a helper function * Fix the testing of blackman modulation * Move noise-related tests to an independent testing files * Fix the unneeded # pragma: no cover in _sample_slots * Add a Failing test for the SLM, for discussion * Move the comment on performance * Make the SLM detectino more idiomatic * Simplify the assertions for sequence in XY * Remove superfluous print statements * Test SLM sampling alongside the check against simulation * Refactor using a helper for nested dicts * Rearrange the test file
* Adding new operators to OpSupport * Removing `__len__` from `Variable` to allow for numpy ufuncs * Adding missing operations * Finished new operations + unit tests * Forbiding variable channels and measurements + mypy * Adding the new operations to the supported list * Support for serialization of the new ops * Changing implementation of `round` * Changing implementation of `floordiv` * Increasing coverage of serialization support for ops
* Fixing bug related to simulation with state preparation errors * Updating the noisy simulations notebook
* Make evaluation times uniform including final time * New strategy - repeat last sample * Zero final sample. * Black * Make `_tot_duration` equal to seq duration. * Change adapt method to full array input * Edit simulation tests * Simplify appending 0 and final time in eval times * Modify tests to compare with simulation * Black * Remove unnecesary verification * Remove unused import * Black bis * Ignore flexible eval_times instruction type. * Update pulser/simulation/simulation.py Assign value as np.ndarray Co-authored-by: Henrique Silvério <[email protected]> * Update pulser/simulation/simulation.py Assign value as np.ndarray (bis) Co-authored-by: Henrique Silvério <[email protected]> * Passing all CI tests * Changing sampler tests * Add tests for empty and small values of eval time * Make test assert stronger increasing sampling rate Co-authored-by: Henrique Silvério <[email protected]>
* Separating specific noise definitions from general noise objects * Adding missing licenses
* Add function to convert atoms ids to indices * Add target_index and beginning of UT * Order qubit indices using register initialization + UTs * Replace frozenset with abc Set * Auto reformat * Fix flake8 issues * Move overloads before _target to try to fix strange CI mypy issue * Move precheck target overloads before _target to try to fix strange CI mypy issue * Revert "Move overloads before _target to try to fix strange CI mypy issue" This reverts commit 838d5fe. * Black * Add phase_shift_index + UTs * Apply comments * Allow using index when non-parametrized non-mappable + UTs * Manage index errors + UTs * Fix useless UT mypy error * Apply remarks * Apply remarks * Apply remarks * Apply remarks * Apply remark to fix docstring type Co-authored-by: Henrique Silvério <[email protected]>
* Moving unit tests out of `pulser` * Moving pulser.simulation files to pulser_simulation * Setting up `pulser_simulation` as a separate package * Moving all contents of `pulser` to `pulser-core` * Setting up 'pulser', 'pulser-core' and 'pulser-simulation' * Updating the docs
* Extend find_indices to normal registers and improve doc * Add missing warning case of undeclared parameter * Small fixes * Fix small flake8 issue * Fix coverage
* Remove string variables and switch to indices * Small fixes * Fixing syntaxt error in tutorial + Black formatting * Remove unused import * Remove parametrized qubit ids, add error cases + UTs, fix docstrings * Add UT for multiple index targets * Test parametrized array index targets * Disallow parametrized where relevant in checks * Remove dead code Co-authored-by: HGSilveri <[email protected]>
* Customizing RTD theme to support larger screens * Adjusting the max window width
* Small typing fix * Misc updates to the docs
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
HGSilveri
added a commit
that referenced
this pull request
May 13, 2022
Main changes: - 3921795 Remove string variables (#365) - b23ff22 Splitting `pulser` into `pulser-core` and `pulser-simulation`. (#362) - 4f684f3 Address qubits with indices (#356) - f2ee5e2 Make evaluation times uniform including final time (#330) - c34dffb Changes for compatibility with upcoming export format (#353) - 3ac1f66 Sequence sampler (#345)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Main changes:
pulser
intopulser-core
andpulser-simulation
. (Splittingpulser
intopulser-core
andpulser-simulation
. #362)